Project 2: SOS Beacon
Ensimmäinen tavoite oli saada ledi ylipäätään vilkkumaan.
Project 2: SOS Beacon image source: http://image.dfrobot.com/image//Blog/ |
Ohjelmakoodi ledin vilkuttamiseen on hyvin yksinkertainen:
int LED = 10;
void setup() {
pinMode(LED, OUTPUT);
}
void loop() {
digitalWrite(LED, HIGH);
delay(1000);
digitalWrite(LED, LOW);
delay(1000);
}
Jotta koodin voi ladata Arduinoon, pitää muistaa valita oikea sarjaportti USB-kaapelille:
Valitse Työkalut-valikosta oikea portti Arduinolle, ennen koodin lataamista siihen |
Seuraava tehtävä olikin saada ledi vilkkumaan nopeammin sekä niin että yksi vilkutus on pidempi ja toinen lyhyempi. Kun oppilaat olivat tämän hoksanneet, niin lopullinen tehtävä oli saada aikaan S.O.S morseaakkosilla eli ... --- ...
Tämä onnistui kopioimalla monta riviä koodia. Osalla rivit alkoivat mennä sekaisin, joten totesimme, että on ehkä kätevämpää tehdä apuohjelma, joka suorittaa yhden vilkutuksen. Koska vilkutuksen pituus vaihtelee, se asetettiin muuttujaksi (pituus).
int LED = 10;
int LYHYT = 200;
int PITKA = 500;
void setup() {
pinMode(LED, OUTPUT);
}
void vilkutus(int pituus){
digitalWrite(LED, HIGH);
delay(pituus);
digitalWrite(LED, LOW);
delay(500);
}
void loop() {
vilkutus(LYHYT);
vilkutus(LYHYT);
vilkutus(LYHYT);
vilkutus(PITKA);
vilkutus(PITKA);
vilkutus(PITKA);
vilkutus(LYHYT);
vilkutus(LYHYT);
vilkutus(LYHYT);
}
Tämä versio koodista todettiin aika selkeäksi, tosin hieman turhaa toistoa sisältäväksi. Lopullinen koodi optimoitiin for-looppien avulla tällaiseksi:
int LED = 10;
int LYHYT = 200;
int PITKA = 500;
void setup() {
pinMode(LED, OUTPUT);
}
void vilkutus(int pituus){
digitalWrite(LED, HIGH);
delay(pituus);
digitalWrite(LED, LOW);
delay(500);
}
void loop() {
for(int i=0; i<= 2; i++){
vilkutus(LYHYT);
}
for(int i=0; i<= 2; i++){
vilkutus(PITKA);
}
for(int i=0; i<= 2; i++){
vilkutus(LYHYT);
}
}
SOS Beacon kytkentä näyttää tältä |
Ei kommentteja:
Lähetä kommentti