Οι αναγνώστες γνωρίζουν ανιχνευτές - αναλόγους των πρωτοπόρων μας, αλλά αποδεικνύεται ότι υπάρχουν και μικρά παιδιά - ανάλογα του Οκτωβρίου μας. Αποδεκτό σε αυτούς από την ηλικία των πέντε ετών. Ο γιος του συγγραφέα Instructsbles με το ψευδώνυμο mr_fid έχει ήδη υιοθετηθεί και θα πρέπει να παρευρεθεί σε μια μεγάλη εκδήλωση για καμπίνες και προσκόπους, ένας από τους οποίους θα είναι ο κώδικας Morse. Για να ενδιαφέρει περισσότερο το παιδί, ο δάσκαλος του έδωσε ένα ασυνήθιστο παιχνίδι.
Εκτελείται
Arduino Nano και παράγει 12 διαφορετικές λέξεις που εκπέμπουν στον βομβητή με μια ενσωματωμένη γεννήτρια (μπορεί να γίνει με μηχανικό διακόπτη) και ένα LED RGB. Ο κύκλος μπορεί να ρυθμιστεί μεταξύ 100 και 1100 χιλιοστών του δευτερολέπτου. Για να αλλάξετε λέξεις, παρέχεται ένας διακόπτης. Ο σχεδιασμός τροφοδοτείται από μπαταρία λιθίου-πολυμερούς 1000 mAh. Ο ελεγκτής φόρτισης είναι ενσωματωμένος. Αλλά εδώ δεν είναι ακόμα:
Mr_fid ευχαριστεί Simon Monk για το βιβλίο Arduino Programming, το οποίο αγόρασε πριν από πολλά χρόνια. Κατά την κατάρτιση του σκίτσου, βασίστηκε σε παραδείγματα από αυτό το βιβλίο.
Ξεκινήστε τις εργασίες
σπιτικό, ο κύριος γνώριζε για τον κώδικα Morse μόνο ότι υπήρχε σήμα SOS. Έπρεπε να μάθω το υλικό και να βρω ότι το σημείο είναι ένα μέτρο, η παύλα είναι τρία, το διάστημα μεταξύ των χαρακτήρων στο γράμμα είναι ένα μέτρο, μεταξύ των γραμμάτων είναι τρία, μεταξύ των λέξεων είναι επτά.
Κατά τη σήμανση του πλαστικού mr_fid χρησιμοποιείται ταινία κάλυψης. Χάρη σε αυτό, το ίχνος του δείκτη φαίνεται καλύτερα αν το πλαστικό είναι σκοτεινό. Επιπλέον, αυτή η αυτοκόλλητη ταινία είναι ματ, και το τρυπάνι δεν γλιστράει όταν "στοχεύει".
Είναι απαραίτητο να εκτιμηθεί εκ των προτέρων ποια από τα στοιχεία της δομής θα τοποθετηθούν, έτσι ώστε να χωρέσει τα πάντα και κανένα από τα στοιχεία να μην αγγίζει τα γειτονικά, συμπεριλαμβανομένων των προεξέχοντων τμημάτων. Ο κ. Mrfid δεν έχει ξεχάσει τίποτα εκτός από ... την μπαταρία. Λοιπόν, η περίπτωση είναι αρκετά ευρύχωρη, και στη συνέχεια βρέθηκε μια θέση για αυτό. Εν τω μεταξύ ...
Αν και ο πλοίαρχος έχει ένα μικρό τρυπάνι, ακόμα και με αυτόν χρησιμοποίησε ένα τρυπάνι βημάτων για ευκολία, είναι επίσης ένα "ψαροκόκαλο" ή "καρότο".
Όταν ο άξονας του διακόπτη περιστρέφεται από τη λαβή, ο ίδιος ο διακόπτης πρέπει να παραμείνει ακίνητος. Για αυτό, εκτός από τον άξονα, μπροστά του υπάρχει ένας μικρός πείρος που απαιτεί πρόσθετη οπή στο μπροστινό πίνακα.
Ως εκ τούτου, mr_fid διάτρησε πρώτα μια τρύπα για τον άξονα, στη συνέχεια κολληθεί η ταινία κάλυψης στο πίσω μέρος, βάλτε το διακόπτη κλειδί στη θέση του και πιέζεται. Η καρφίτσα άφησε ένα σημάδι στην ταινία κάλυψης, παραμένει να τρυπήσει μια τρύπα εκεί.
Το πρόγραμμα χωρίς να ληφθεί υπόψη η μπαταρία, ο ελεγκτής φόρτισης και ο μετατροπέας μοιάζουν με αυτό:
Στο μπροστινό πάνελ, όπου βρίσκεται ο καλωδιακός διακόπτης και μια μεταβλητή αντίσταση, ο πλοίαρχος συνδύασε τα συμπεράσματα αυτών των στοιχείων που είναι συνδεδεμένα με τα ίδια σημεία του κυκλώματος στην περίπτωση (στην περίπτωση αυτή, το συν και το κοινό σύρμα). Αυτό επέτρεψε να σύρονται μόνο τέσσερα σύρματα μεταξύ του μπροστινού πίνακα και του περιβλήματος.
Ο διακόπτης κλειδιού μετατρέπεται επίσης σε ένα είδος μεταβλητής αντιστάσεως, μόνο ένα βήμα ένα, για το οποίο δένονται 11 αντιστάσεις ανά 1 kOhm, όπως φαίνεται στις φωτογραφίες. Το Arduino καθορίζει τη θέση του με μια σταδιακή μεταβαλλόμενη τάση, για την οποία είναι αρκετή μία αναλογική είσοδος.
Μεγαλύτερο:
Για τον έλεγχο της LED RGB, ο mr_fid επέλεξε τους ακροδέκτες Arduino με τους αριθμούς 9, 10 και 11. Πρόκειται για έξοδο PWM, η οποία στο επόμενο firmware θα καταστήσει δυνατή τη λήψη περισσότερων bits ανά χρώμα από τα τρία.
Συνδέθηκε ένα συν και ένα κοινό σύρμα με αντίστροφη πολικότητα σε μια μεταβλητή αντίσταση, έτσι ώστε η ελάχιστη θέση να αντιστοιχεί στον κύκλο μέγιστης διάρκειας, δηλαδή στην ελάχιστη ταχύτητα.
Το παράδειγμα από το βιβλίο του Simon Monk είναι απλό και μονο-λειτουργικό: παίρνει δεδομένα εισερχόμενα μέσω της σειριακής θύρας και μεταφράζει το σε κώδικα Morse με κύκλο 200 millisecond. Οι πρόσθετες λειτουργίες που προστίθενται από τον οδηγό παρέχουν ρύθμιση της χρονικής περιόδου ανάλογα με την τάση που προέρχεται από τη μηχανή μεταβλητής αντίστασης, καθώς και την άρνηση της σειριακής θύρας υπέρ της αποθήκευσης 12 σταθερών λέξεων που επιλέγονται από το διακόπτη επιλογής. Επίσης, προστέθηκαν ρουτίνες για τον έλεγχο του κουμπιού αλλαγής λειτουργίας RGB LED, αλλά και με ένα tweeter με μια ενσωματωμένη γεννήτρια, το πρόγραμμα θα μπορούσε να ελέγξει αρχικά.
Κατά τον προγραμματισμό του Arduino, ο mr_fid ξέχασε τελείως ότι το παιχνίδι πρέπει να τροφοδοτηθεί από κάτι, επειδή το board έχει τροφοδοτηθεί από USB αυτή τη φορά. Όταν θυμήθηκε, η πρώτη σκέψη ήταν να τροφοδοτήσει όλα αυτά από την "Κρόνα" μέσω του σταθεροποιητή. Αλλά δεν ταιριάζει, και αρχικά ο πλοίαρχος θέλησε να το βγάλει έξω, αλλά στη συνέχεια αποφάσισε να χρησιμοποιήσει μια λεπτή μπαταρία λιθίου-πολυμερούς με 3.7 V και 1000 mAh.
Με μια πρόσφατα φορτισμένη μπαταρία, η τάση φτάνει τα 4,2 V, που είναι αρκετή για όλους τους κρυστάλλους του LED RGB, συμπεριλαμβανομένου του μπλε. Αλλά καθώς εκφορτίζεται, πέφτει και παρόλο που τα 3,3 V είναι αρκετά, η φωτεινότητα του μπλε φωτός μπορεί να μειωθεί σημαντικά. Έπρεπε να χρησιμοποιήσω ένα σταθεροποιητή ώθησης με ένα σταθερό 5 βολτ στην έξοδο. Και για να μην αφαιρεθεί η μπαταρία από τη θήκη κατά τη φόρτιση, ο συγγραφέας πρόσθεσε έναν ελεγκτή χρέωσης και ένα διακόπτη αντιστροφής διπλής όψης που συνδέει την μπαταρία και με τους δύο πόλους είτε με το Arduino είτε με αυτόν τον ελεγκτή. Τώρα μπορείτε να φορτίσετε το παιχνίδι από USB.
Συνδέθηκε όλα αυτά μαζί με τέτοιο τρόπο, χωρίς να ξεχνάμε την πολικότητα και την πρόληψη βραχυκυκλώματος:
Αλλάζοντας τη θέση του διακόπτη μπισκότων, μπορείτε να επιλέξετε τον κωδικό Morse για τους ακόλουθους συνδυασμούς γραμμάτων: HHH (μία κουκκίδες), OOO (μία παύλα), CAT (γάτα), DOG (σκύλος), ANT (μυρμήγκι), FLY (RAT) OWL (κουκουβάγια), PIG (χοίρος), HEN (κοτόπουλο), FOX (αλεπού) και EMU (emu). Το κουμπί σας επιτρέπει να αλλάζετε τις λειτουργίες του LED RGB στο δαχτυλίδι: σταθερά χρώματα - κόκκινο, μπλε, πράσινο, μπλε-πράσινο, κίτρινο, βατόμουρο, λευκό, καθώς και κόκκινη κηλίδα και πράσινη παύλα, αλλαγή χρώματος μετά από κάθε λέξη, .
Στο Arduino, ο mr_fid ανέβασε ένα τέτοιο σκίτσο:int dotDelay = 200;
int ledPinRed = 11; // κόκκινο
int ledPinBlue = 10; // μπλε
int ledPinGreen = 9; // πράσινο
int oldAI = 15;
int pat;
int i = 1;
int j = 0;
bool toggle = false
κουμπί int = 8;
int βομβητής = 7;
int flag = 1;
int selectWord;
int ζώ = 1;
int potValue = 0;
int maxVoltageBits = 1023;
int διαιρούμεναBits = maxVoltageBits / 22;
const int pot = Α4.
const int rotaryInput = A5;
char ch;
char * γράμματα [] = {
"-", "-", "-", "-", "-", " .. ",
"-", "-", "-", "-", "-", "-", " ".-.",
"...", "-", "..-", "...", "-", "-..-", "-.--", "- .."} .
char * αριθμοί [] = {
"-----", ".----", "..---", "...", "....-",
".....", "-....", "-", "--- ..", "----."};
char * ζώα3 = "hhhooocatdogantflyratowlpighenfoxemu";
void setup ()
{
pinMode (ledPinBlue, OUTPUT).
pinMode (ledPinRed, OUTPUT);
pinMode (ledPinGreen, OUTPUT).
pinMode (δοχείο, INPUT);
pinMode (περιστροφική είσοδος, είσοδος);
pinMode (κουμπί, ΕΙΣΟΔΟΣ);
pinMode (βομβητής, OUTPUT);
Ψηφιακή εγγραφή (ledPinRed, HIGH);
ΨηφιακήWrite (ledPinBlue, HIGH);
ΨηφιακήWrite (ledPinGreen, HIGH);
ψηφιακήWrite (ledPinRed, LOW);
καθυστέρηση (500);
Ψηφιακή εγγραφή (ledPinRed, HIGH);
καθυστέρηση (100).
ψηφιακή γραφή (ledPinBlue, LOW);
καθυστέρηση (500);
ΨηφιακήWrite (ledPinBlue, HIGH);
καθυστέρηση (100).
ψηφιακή γραφή (ledPinGreen, LOW);
καθυστέρηση (500);
ΨηφιακήWrite (ledPinGreen, HIGH);
καθυστέρηση (100).
ψηφιακή γραφή (buzzer, HIGH);
καθυστέρηση (100).
ψηφιακή γραφή (buzzer, LOW);
int κουμπίValue = ψηφιακόΔιαβάστε (κουμπί);
αν (buttonValue == 1)
{
επιλέξτεWord = αναλογικήΔιαβάστε (rotaryInput);
selectorSwitch1 (επιλογήWord);
}}
αλλού
{
σημαία = 1;
}}
}}
κενός βρόχος ()
{
wait_for_enter ();
επιλέξτεWord = αναλογικήΔιαβάστε (rotaryInput);
selectorSwitch (επιλογήWord);
potValue = αναλογικόΔιαβάστε (pot);
dotDelay = potValue + 100;
i = (ζώο * 3) -3.
ενώ (j <3)
{
ch = ζώα3 [i].
αν (ch & gt; = 'a' && ch & lt; = 'z')
{
flashSequence (γράμματα [ch - 'a']);
}}
αλλιώς αν (ch & gt; = '0' && ch & lt; = '9')
{
flashSequence (γράμματα [ch - '0']);
}}
αλλι αν (ch == '')
{
καθυστέρηση (dotDelay * 7);
}}
i = i + 1.
j = j + 1.
}}
καθυστέρηση (dotDelay * 7);
// toggle =! toggle; // εναλλαγή χρώματος κάθε λέξη (δεν χρειάζεται)
j είναι 0;
}}
void wait_for_enter ()
{
int κουμπίValue = ψηφιακόΔιαβάστε (κουμπί);
ενώ (buttonValue == 0)
{
buttonValue = digitalRead (κουμπί);
}}
}}
άκυρη ακολουθία φλας (αλληλουχία char *)
{
int k = 0;
ενώ (ακολουθία [k]! = '\ 0')
{
flashDotOrDash (ακολουθία [k]);
k = k + 1.
}}
//Serial.print ("");
καθυστέρηση (dotDelay * 3);
εναλλαγή =! toggle; // εναλλαγή χρώματος μεταξύ των γραμμάτων
}}
κενό flashDotOrDash (char dotOrDash)
{
αν (dotOrDash == '.')
{
αν (σημαία == 1)
{
ψηφιακήWrite (ledPinRed, LOW);
ψηφιακή γραφή (buzzer, HIGH);
καθυστέρηση (dotDelay);
ψηφιακή γραφή (buzzer, LOW);
Ψηφιακή εγγραφή (ledPinRed, HIGH);
}}
else if (flag == 2)
{
ψηφιακή γραφή (ledPinBlue, LOW);
ψηφιακή γραφή (buzzer, HIGH);
καθυστέρηση (dotDelay);
ψηφιακή γραφή (buzzer, LOW);
ΨηφιακήWrite (ledPinBlue, HIGH);
}}
else if (flag == 3)
{
ψηφιακή γραφή (ledPinGreen, LOW);
ψηφιακή γραφή (buzzer, HIGH);
καθυστέρηση (dotDelay);
ψηφιακή γραφή (buzzer, LOW);
ΨηφιακήWrite (ledPinGreen, HIGH);
}}
else if (flag == 4)
{
ψηφιακή γραφή (ledPinGreen, LOW);
ψηφιακή γραφή (ledPinBlue, LOW);
ψηφιακή γραφή (buzzer, HIGH);
καθυστέρηση (dotDelay);
ψηφιακή γραφή (buzzer, LOW);
ΨηφιακήWrite (ledPinGreen, HIGH);
ΨηφιακήWrite (ledPinBlue, HIGH);
}}
else if (flag == 5)
{
ψηφιακήWrite (ledPinRed, LOW);
ψηφιακή γραφή (ledPinGreen, LOW);
ψηφιακή γραφή (buzzer, HIGH);
καθυστέρηση (dotDelay);
ψηφιακή γραφή (buzzer, LOW);
Ψηφιακή εγγραφή (ledPinRed, HIGH);
ΨηφιακήWrite (ledPinGreen, HIGH);
}}
else if (flag == 6)
{
ψηφιακήWrite (ledPinRed, LOW);
ψηφιακή γραφή (ledPinBlue, LOW);
ψηφιακή γραφή (buzzer, HIGH);
καθυστέρηση (dotDelay);
ψηφιακή γραφή (buzzer, LOW);
Ψηφιακή εγγραφή (ledPinRed, HIGH);
ΨηφιακήWrite (ledPinBlue, HIGH);
}}
else if (flag == 7)
{
ψηφιακήWrite (ledPinRed, LOW);
ψηφιακή γραφή (ledPinBlue, LOW);
ψηφιακή γραφή (ledPinGreen, LOW);
ψηφιακή γραφή (buzzer, HIGH);
καθυστέρηση (dotDelay);
ψηφιακή γραφή (buzzer, LOW);
Ψηφιακή εγγραφή (ledPinRed, HIGH);
ΨηφιακήWrite (ledPinBlue, HIGH);
ΨηφιακήWrite (ledPinGreen, HIGH);
}}
αλλιώς αν (σημαία == 8)
{
ψηφιακήWrite (ledPinRed, LOW);
ψηφιακή γραφή (buzzer, HIGH);
καθυστέρηση (dotDelay);
ψηφιακή γραφή (buzzer, LOW);
Ψηφιακή εγγραφή (ledPinRed, HIGH);
}}
else if (flag == 9)
{
αν (εναλλαγή! = 0)
{
ψηφιακήWrite (ledPinRed, LOW);
ψηφιακή γραφή (buzzer, HIGH);
καθυστέρηση (dotDelay);
ψηφιακή γραφή (buzzer, LOW);
Ψηφιακή εγγραφή (ledPinRed, HIGH);
}}
αλλού
{
ψηφιακή γραφή (ledPinBlue, LOW);
ψηφιακή γραφή (buzzer, HIGH);
καθυστέρηση (dotDelay);
ψηφιακή γραφή (buzzer, LOW);
ΨηφιακήWrite (ledPinBlue, HIGH);
}}
}}
}}
αλλού
{
αν (σημαία == 1)
{
ψηφιακήWrite (ledPinRed, LOW);
ψηφιακή γραφή (buzzer, HIGH);
καθυστέρηση (dotDelay * 3);
ψηφιακή γραφή (buzzer, LOW);
Ψηφιακή εγγραφή (ledPinRed, HIGH);
}}
else if (flag == 2)
{
ψηφιακή γραφή (ledPinBlue, LOW);
ψηφιακή γραφή (buzzer, HIGH);
καθυστέρηση (dotDelay * 3);
ψηφιακή γραφή (buzzer, LOW);
ΨηφιακήWrite (ledPinBlue, HIGH);
}}
else if (flag == 3)
{
ψηφιακή γραφή (ledPinGreen, LOW);
ψηφιακή γραφή (buzzer, HIGH);
καθυστέρηση (dotDelay * 3);
ψηφιακή γραφή (buzzer, LOW);
ΨηφιακήWrite (ledPinGreen, HIGH);
}}
else if (flag == 4)
{
ψηφιακή γραφή (ledPinGreen, LOW);
ψηφιακή γραφή (ledPinBlue, LOW);
ψηφιακή γραφή (buzzer, HIGH);
καθυστέρηση (dotDelay * 3);
ψηφιακή γραφή (buzzer, LOW);
ΨηφιακήWrite (ledPinGreen, HIGH);
ΨηφιακήWrite (ledPinBlue, HIGH);
}}
else if (flag == 5)
{
ψηφιακήWrite (ledPinRed, LOW);
ψηφιακή γραφή (ledPinGreen, LOW);
ψηφιακή γραφή (buzzer, HIGH);
καθυστέρηση (dotDelay * 3);
ψηφιακή γραφή (buzzer, LOW);
Ψηφιακή εγγραφή (ledPinRed, HIGH);
ΨηφιακήWrite (ledPinGreen, HIGH);
}}
else if (flag == 6)
{
ψηφιακήWrite (ledPinRed, LOW);
ψηφιακή γραφή (ledPinBlue, LOW);
ψηφιακή γραφή (buzzer, HIGH);
καθυστέρηση (dotDelay * 3);
ψηφιακή γραφή (buzzer, LOW);
Ψηφιακή εγγραφή (ledPinRed, HIGH);
ΨηφιακήWrite (ledPinBlue, HIGH);
}}
else if (flag == 7)
{
ψηφιακήWrite (ledPinRed, LOW);
ψηφιακή γραφή (ledPinBlue, LOW);
ψηφιακή γραφή (ledPinGreen, LOW);
ψηφιακή γραφή (buzzer, HIGH);
καθυστέρηση (dotDelay * 3);
ψηφιακή γραφή (buzzer, LOW);
Ψηφιακή εγγραφή (ledPinRed, HIGH);
ΨηφιακήWrite (ledPinBlue, HIGH);
ΨηφιακήWrite (ledPinGreen, HIGH);
}}
αλλιώς αν (σημαία == 8)
{
ψηφιακή γραφή (ledPinGreen, LOW);
ψηφιακή γραφή (buzzer, HIGH);
καθυστέρηση (dotDelay * 3);
ψηφιακή γραφή (buzzer, LOW);
ΨηφιακήWrite (ledPinGreen, HIGH);
}}
else if (flag == 9)
{
αν (εναλλαγή! = 0)
{
ψηφιακήWrite (ledPinRed, LOW);
ψηφιακή γραφή (buzzer, HIGH);
καθυστέρηση (dotDelay * 3);
ψηφιακή γραφή (buzzer, LOW);
Ψηφιακή εγγραφή (ledPinRed, HIGH);
}}
αλλού
{
ψηφιακή γραφή (ledPinBlue, LOW);
ψηφιακή γραφή (buzzer, HIGH);
καθυστέρηση (dotDelay * 3);
ψηφιακή γραφή (buzzer, LOW);
ΨηφιακήWrite (ledPinBlue, HIGH);
}}
}}
}}
καθυστέρηση (dotDelay); // μεταξύ γραμμάτων
// toggle =! toggle; // εναλλαγή μεταξύ των χαρακωμάτων
}}
άκυρη επιλογέαΑντίσταση1 (int AI)
{
αν ((AI> (old AI + 10)) || (AI 11 * divided Bits) // πρέπει να είναι 7,8,9,10,11,12.
{
εάν (AI> 17 * divided Bits) // πρέπει να είναι 10,11,12.
{
εάν (AI> 21 * divided Bits) // πρέπει να είναι 12.
{
σημαία = 12;
}}
else // πρέπει να είναι είτε 10.11.
{
αν (AI> 19 * divided Bits) // πρέπει να είναι 11.
{
σημαία = 11;
}}
else // πρέπει να είναι 10.
{
σημαία = 10;
}}
}}
}}
else // πρέπει να είναι 7,8,9.
{
εάν (AI> 15 * divided Bits) // πρέπει να είναι 9.
{
σημαία = 9;
}}
else // πρέπει να είναι 7.8.
{
αν (AI> 13 * divided Bits) // πρέπει να είναι 8.
{
σημαία = 8;
}}
else // πρέπει να είναι 7.
{
σημαία = 7;
}}
}}
}}
}}
αλλοι // πρέπει να είναι 1,2,3,4,5,6.
{
εάν (AI> 5 * divided Bits) // πρέπει να είναι 4,5,6.
{
εάν (AI> 9 * divided Bits) // πρέπει να είναι 6.
{
σημαία = 6;
}}
else // πρέπει να είναι 4,5.
{
εάν (AI> 7 * divided Bits) // πρέπει να είναι 5
{
σημαία = 5;
}}
else // πρέπει να είναι 4.
{
σημαία = 4;
}}
}}
}}
else // πρέπει να είναι 1,2,3.
{
αν (AI> 3 * divided Bits) // πρέπει να είναι 3.
{
σημαία = 3;
}}
else // πρέπει να είναι 1,2.
{
εάν (AI> dividedBits) // πρέπει να είναι 2.
{
σημαία = 2;
}}
else // πρέπει να είναι 1.
{
σημαία = 1;
}}
}}
}}
}}
}}
oldAI = AI;
// καθυστέρηση (500);
//Serial.println ();
}}
void selectorSwitch (int AI)
{
αν ((AI> (old AI + 10)) || (AI 11 * divided Bits) // πρέπει να είναι 7,8,9,10,11,12.
{
εάν (AI> 17 * divided Bits) // πρέπει να είναι 10,11,12.
{
εάν (AI> 21 * divided Bits) // πρέπει να είναι 12.
{
ζώο = 12;
}}
else // πρέπει να είναι είτε 10.11.
{
αν (AI> 19 * divided Bits) // πρέπει να είναι 11.
{
ζώο = 11;
}}
else // πρέπει να είναι 10.
{
ζώο = 10;
}}
}}
}}
else // πρέπει να είναι 7,8,9.
{
εάν (AI> 15 * divided Bits) // πρέπει να είναι 9.
{
ζώο = 9;
}}
else // πρέπει να είναι 7.8.
{
αν (AI> 13 * divided Bits) // πρέπει να είναι 8.
{
ζώο = 8;
}}
else // πρέπει να είναι 7.
{
ζώο = 7;
}}
}}
}}
}}
αλλοι // πρέπει να είναι 1,2,3,4,5,6.
{
εάν (AI> 5 * divided Bits) // πρέπει να είναι 4,5,6.
{
εάν (AI> 9 * divided Bits) // πρέπει να είναι 6.
{
ζώο = 6.
}}
else // πρέπει να είναι 4,5.
{
εάν (AI> 7 * divided Bits) // πρέπει να είναι 5
{
ζώο = 5;
}}
else // πρέπει να είναι 4.
{
ζώο = 4;
}}
}}
}}
else // πρέπει να είναι 1,2,3.
{
αν (AI> 3 * divided Bits) // πρέπει να είναι 3.
{
ζώο = 3;
}}
else // πρέπει να είναι 1,2.
{
εάν (AI> dividedBits) // πρέπει να είναι 2.
{
ζώο = 2;
}}
else // πρέπει να είναι 1.
{
ζώο = 1;
}}
}}
}}
}}
}}
oldAI = AI;
// καθυστέρηση (500);
//Serial.println ();
}}
Εάν επαναλάβετε μετά από τον πλοίαρχο, τώρα στα χέρια σας είναι το ίδιο παιχνίδι με το οποίο μπορείτε να ενδιαφέρετε τα παιδιά σας στον κώδικα Morse. Και όταν μεγαλώσουν, με μια απλή τροποποίηση υλικολογισμικού, μπορείτε να πάρετε τη βάση για μια τυπική αυτόματη "αλεπού", μεταδίδοντας μια επιλογή MOE, MOI, MOS, MOH ή MO5, ανάβοντας για ένα λεπτό κάθε τέσσερα λεπτά.
P.S. ειδικά για τους βαρετούς ανθρώπους που βρουν λάθη με τίτλους: Τα ζώα είναι ένα συλλογικό όνομα για τα ζώα, τα πουλιά και τα έντομα.