Arduino. - SOS Blink
- Detaljer
- Kategori: Uncategorised
- Publiceret: Mandag, 2. December 2019 17:03
- Visninger: 10560
Artikelindeks
S.O.S Morse kode.
Dette Projekt ligner det første som vi lavede, hvor vi bare brugte delay til at ænder om det skulle være kort eller lang
Dette kan gøres på en meget mere overskuelige måde.
Vi skal se på en ny kommando som hedder FOR , vi kan se at FOR gør det at LED ikke kun blinker 1 gang, men helle 3 gange, for (int x=0; x<3; x++) {, det er dette stykke kode der gør at LED blinker 3 gange.
Hvis man skal forklarer hvad det så betyder, så har vi lavet en variabel der hedder X, dette X har vi sat til værdien 0
Vi sætter derefter en betingelse for at afgøre hvor mange gange de koder i sløjfen udføres X<3
Koden i sådan en løkke vil altid udføre en gang lige gyldigt hvad tilstanden er indstillet til.
Dette bruges til at sammenligne to værdier. Symbolerne anvendes er: -== (Lig med)! = (Ikke lig med)<(Mindre end)> (Større end)<= (Mindre end eller lig med)> = (Større end eller lig med)I vores kode, vi sammenligner x med værdien på 3,tilser om den er mindre end 3. Hvis x er mindre end 3, vil koden i blokken vil blive gentage igen. Den endelige opgørelse er x ++dette er en erklæring for at øge værdien af x med 1. Vi kunne også have skrevet x = x + 1; som ville tildele x værdien af x + 1. Du kan gøre det med simpel matematik ved anvendelse af disse symboler +,-, * Og / (plus, minus, multiplikation og division) eks. 1 + 1 = 23 - 2 = 12 * 4 = 88/2 = 4 Så vores løkke initialisere den værdi af x til 3, så kører koden inden for blokken.
Hvis vi kikker på koden, kan vi se at kort ” dits” har en delay på 150 ms. Og ”dah” lang har et delay på 400 ms
// S.O.S morse blink med Lysdiode. // LED sat i digital pin 10 int ledPin = 10; // køre en gang nar der er power til Arduino void setup() { // led pin sat til output pinMode(ledPin, OUTPUT); } void loop() { // køre hele tiden // 3 dits = Korte for (int x=0; x<1; x++) { digitalWrite(ledPin, HIGH); // tænder led delay(150); // vent i 150ms digitalWrite(ledPin, LOW); // slukker led delay(100); // vent i 100ms } // 100ms pause mellem hvert tegn delay(100); // 3 dahs = Lange for (int x=0; x<1; x++) { digitalWrite(ledPin, HIGH); // tænder led delay(400); // vent i 400ms digitalWrite(ledPin, LOW); // slukker led delay(100); // vent i 100ms } // 100ms delay pause mellem hvert tegn delay(100); // 3 dits igen korte for (int x=0; x<1; x++) { digitalWrite(ledPin, HIGH); // tænder led delay(150); // vent 150ms digitalWrite(ledPin, LOW); // slukker led delay(100); // waits for 100ms } // venter lige 5 sec. og så køre vi igen delay(5000); } Fritzing vil det se sådan ud.
Nu skal du finde morse alfabedet på google, så skal du se om du kan få lysdionen til morse dit eget navn. her kan du se mit navn.
// LED sat i digital pin 10 int ledPin = 10; // køre en gang når der er power til Arduino void setup() { // led pin sat til output pinMode(ledPin, OUTPUT); } void loop() { for (int x = 0; x < 1; x++) { digitalWrite(ledPin, HIGH); // tænder led delay(200); // vent i 200ms digitalWrite(ledPin, LOW); // slukker led delay(150); digitalWrite(ledPin, HIGH); // tænder led delay(400); // vent 400ms digitalWrite(ledPin, LOW); // slukker led R = .-. delay(150); // vent 150ms digitalWrite(ledPin, HIGH); // tænder led delay(200); // vent 200ms digitalWrite(ledPin, LOW); // slukker led delay(500); // vent for 150ms } for (int x = 0; x < 1; x++) { digitalWrite(ledPin, HIGH); // tænder led delay(200); // vent i 200ms E = . digitalWrite(ledPin, LOW); // slukker led delay(500); } for (int x = 0; x < 1; x++) { digitalWrite(ledPin, HIGH); // tænder led delay(400); // vent 400ms digitalWrite(ledPin, LOW); // slukker led delay(150); // vent 150ms N = -. digitalWrite(ledPin, HIGH); // tænder led delay(200); // vent 200ms digitalWrite(ledPin, LOW); // slukker led delay(500); // vent 150ms } for (int x = 0; x < 1; x++) { digitalWrite(ledPin, HIGH); // tænder led delay(200); // vent i 200ms E = . digitalWrite(ledPin, LOW); // slukker led delay(500); } // venter lige 2 sec. og så køre vi igen delay(2000); }