Arduino. - SOS Blink

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);
}