Inhoudsopgave:
- Stap 1: Voorzie uw breadboard van stroom
- Stap 2: Aard je breadboard
- Stap 3: plaats uw knop
- Stap 4: Aard uw knop
- Stap 5: Verbind uw knop
- Stap 6: plaats uw zoemer
- Stap 7: Aard de zoemer
- Stap 8: Schakel de zoemer in
- Stap 9: Schrijf uw code
- Stap 10: Gebruik de seriële monitor om uw uitvoer te lezen
- Stap 11: Wil je meer van dit soort projecten?
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
In deze instructable gebruik je een Arduino Uno om een morsecodezender te maken en gebruik je de seriële monitor om de berichten te lezen die je hebt verzonden.
Onderdelen die je nodig hebt:
Arduino Uno
Breadboard
Zoemer
Toetsen
Doorverbindingsdraden
Stap 1: Voorzie uw breadboard van stroom
Sluit een jumperdraad van de 5V-pin op uw Arduino Uno aan op de positieve lijn op uw breadboard.
Stap 2: Aard je breadboard
Verbind nu een draad van een van de GND-pinnen op de Arduino met de negatieve lijn op je breadboard.
Stap 3: plaats uw knop
Plaats uw knop. Zorg ervoor dat twee van de poten zich aan elke kant van het kanaal in het midden van uw breadboard bevinden en dat de poten stevig zijn ingebracht. Het is gemakkelijk om ze te buigen als je hard drukt, dus wees voorzichtig terwijl je op de knop drukt.
Stap 4: Aard uw knop
Verbind de knop met aarde door het ene uiteinde in dezelfde rij te steken als het bovenste been van je knop en het andere uiteinde in de negatieve rij die je eerder met aarde hebt verbonden.
Stap 5: Verbind uw knop
Sluit het knopcircuit en laat de Arduino zijn invoer lezen door een draad uit dezelfde rij als de onderste knoppoot aan te sluiten en pin 7 op de Arduino.
Stap 6: plaats uw zoemer
Plaats uw zoemer zo dat het "+"-teken aan de bovenkant, of het iets langere been, zich aan dezelfde kant van het breadboard bevindt als uw draad die is aangesloten op 5V.
Stap 7: Aard de zoemer
Verbind de knop met aarde met een draad uit dezelfde rij als het kortere been naar de negatieve lijn op het breadboard die u eerder op GND hebt aangesloten.
Stap 8: Schakel de zoemer in
Voorzie de zoemer van stroom en laat de Arduino deze bedienen met een draad uit dezelfde rij als zijn langere been naar pin 8 op de Arduino.
Stap 9: Schrijf uw code
Kopieer en plak onze code of download het bijgevoegde bestand.
static String Morse = {".-", "-…", "-.-.", "-..", ".", "..-.", "--.", "…. ", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "…", "-", "..-", "…-", ".--", "-..-", "-.-- ", "--..", "E" };
statisch teken Alfabet = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', ' x', 'j', 'z', 'E'}; niet-ondertekende lange push_length, start_push, end_push; // tijd waarvoor de knop wordt ingedrukt int knop = 7; // invoerpin voor drukknop int zoemer = 8; //outpu-pin voor LED String-code = ""; //string waarin één alfabet is opgeslagen
ongeldige setup() {
Serieel.begin(9600); pinMode (knop, INPUT_PULLUP); // interne pullup-weerstand wordt gebruikt om het circuit pinMode (zoemer, OUTPUT) te vereenvoudigen; Serial.println("Begin met je bericht!"); }
lege lus()
{ MorseTransmission: while (digitalRead(button) == HIGH) {} start_push = millis(); // tijd bij druk op de knop toon (zoemer, 150); while (digitalRead(knop) == LAAG) {} end_push = millis(); // tijd bij het loslaten van de knop noTone (zoemer); push_length = end_push - start_push; // tijd waarvoor op de knop wordt gedrukt als (push_length> 50) {// om rekening te houden met de debounce-code van de schakelaar += dot_or_dash (push_length); // functie om punt of streepje te lezen} while ((millis () - end_push) < 500) // als de tijd tussen het indrukken van de knop groter is dan 0,5 sec, de lus overslaan en naar het volgende alfabet gaan {if (digitalRead (knop) == LAAG) { ga naar MorseTransmission; } } Morse_translation(code); // functie om code in alfabet te ontcijferen}
char dot_or_dash (float lengte)
{ if (lengte 50) { return '.'; // als de knop minder dan 0,6 sec. indrukt, is het een punt } else if (lengte > 600) { return '-'; // als de knop meer dan 0,6 sec ingedrukt is, is het een streepje } }
void Morse_translation (String morsecode)
{ int ik = 0; if (code == ".-.-.-") { Serial.print("."); // for break } else { while (Morse ! = "E") // loop voor het vergelijken van invoercode met letters array { if (Morse == morsecode) { Serial.print (Alphabet ); pauze; } ik++; } if (Morse == "E") { Serial.println("Fout!"); // als de invoercode met geen enkele letter overeenkomt, fout } } code = ""; // reset code naar lege string}
Stap 10: Gebruik de seriële monitor om uw uitvoer te lezen
Open de seriële monitor om uw berichten te bekijken terwijl u op de knop drukt om morsecode te maken. Gebruik de bovenstaande gids om uw punten en streepjes op de juiste manier te rangschikken!
Stap 11: Wil je meer van dit soort projecten?
Ontvang onderdelen voor 2-3 projecten per maand en instructies en video om ze te bouwen met MakeCrate!