Inhoudsopgave:

Arduino morsecodezender - Ajarnpa
Arduino morsecodezender - Ajarnpa

Video: Arduino morsecodezender - Ajarnpa

Video: Arduino morsecodezender - Ajarnpa
Video: Summer Academy - Basisopleiding micro:bit 2024, November
Anonim
Arduino morsecode zender
Arduino morsecode zender
Arduino morsecode zender
Arduino morsecode zender

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

Voorzie uw breadboard van stroom
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

Aard je breadboard
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

Uw knop invoegen
Uw knop invoegen

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

Aard je knop
Aard je 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

Verbind uw knop
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
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

Aard de zoemer
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

Zet de zoemer aan
Zet de zoemer aan

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

Schrijf uw code
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

Gebruik de seriële monitor om uw output te lezen!
Gebruik de seriële monitor om uw output 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?

Wil je meer van dit soort projecten?
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!

Aanbevolen: