Arduino. - SOS Blink
- Detaljer
- Kategori: Uncategorised
- Publiceret: Mandag, 2. December 2019 17:03
- Visninger: 11015
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);
}