2022 © Kouluelektroniikka Oy

Ledin vilkuttaminen
Hyppää sisältöön

Ledin vilkuttaminen

Ohjeessa kerrotaan miten ommeltavat ledit ja älytekstiilialusta voidaan yhdistää.

Ledin kytkeminen

Yksinkertainen led kytkentä

Tarvikkeet

Huomaa

Et tarvitse välttämättä lediä tai yhdysjohtosarjaa, mikäli käytät alustan sisäänrakennettua lediä Pin 13.

Ohjelmointi

  1. Kytke Micro-USB johto tietokoneeseen ja kehitysalustaan.
  2. Luo uusi Arduino Sketch valitsemalla File -> New
  3. Valitse yläpalkista LilyPad Arduino USB

    Laitteen valinta
    Laitteen valinta

  4. Tutustutaan tiedostopohjaan ja siinä jo valmiina oleviin lohkoihin:

    newSketch.ino
    1
    2
    3
    4
    5
    6
    7
    void setup() {
    
    }
    
    void loop() {
    
    }
    

    Rivillä 1 void setup() määrittelee funktion, joka Arduino maailmassa suoritetaan kerran. Tämän funktion avulla voidaan alustaa laite toimimaan tietyllä tavalla tai määrittää parametrejä lisälaitteille,

    Rivillä 6 void loop() puolestaan määrittelee funktion, jota Arduino maailmassa suoritetaan niin kauan kunnes Arduino sammutetaan tai funktiosta siirrytään pois.

  5. Aloitetaan lisäämällä rivin 1 yläpuolelle määritys

    #define ledPin 2
    

    Puretaan koodia hieman #define kertoo, että kaikki seuraavan sanan esiintymät korvataan viimeisellä parametrillä. Eli tässä tilanteessa jokainen koodissa esiintyvä ledPin korvataan numerolla 2. Näin ollen ei tarvitse enää muistaa mihin pinniin led on kytketty vaan siihen voidaan viitata pelkällä nimellä ledPin.

  6. Määritellään aluksi void setup() sisälle

    pinMode(ledPin, OUTPUT);
    

    Tällä määritetään, että käyttämämme ledPin on syöttävässä eli OUTPUT tilassa.

  7. Määritellään void loop() sisälle jatkuvasti suoritettava koodi

    digitalWrite(ledPin, HIGH);   
    delay(1000);
    digitalWrite(ledPin, LOW);
    delay(1000); 
    

    digitalWrite saa parametreinaan arvon ledPin ja HIGH, ledPin kertoo mitä pinniä ohjataan ja HIGH kertoo tilan. Tämän komennon avulla led syttyy.

    Seuraavalla rivillä delay pysäyttää ohjelman suorituksen määrätyksi ajaksi, tässä tapauksessa 1000 millisekunniksi (ms).

    Muista

    Mikrokontrollereille sekuntti on pitkä aika, siksi ohjelmiin määritetäänkin ajat yleensä millisekuntteina (ms) tai mikrosekuntteina (µs). 1 s on 1000 ms ja 1 ms on 1000 µs. Mikrokontrollerin kellotaajuus on 8 MHz, jolloin 1 sekunnin aikana voidaan suorittaa teoriassa 8 000 000 000 operaatiota tai käskyä.

    digitalWrite saa parametreinaan uudelleen arvon ledPin, mutta loppu onkin LOW jolloin tila muuttuu ja led sammuu.

    Odotetaan uudelleen 1000 ms, jonka jälkeen ohjelman suoritus alkaa uudelleen.

    Koodaamisessa on hyvä myös kirjoittaa auki mitä missäkin kohdassa tehdään kommentoimalla koodirivit. Kommentti näyttää esimerkiksi:

    // Yhden rivin kommentti
    
    /* Kommentti joka
    jatkuu ja jatkuu
    monelle riviile */
    

    Lisäksi tiedoston alkuun on hyvä kirjoittaa pääpiirteittäin mitä ohjelman on tarkoitus tehdä, mikä ohjelman nimi on ja kuka ohjelman on kirjoittanut.

    /*  
        ledBlink.ino Led vilkutin
        Kirjoittanut: Nicklas Uusitalo
        Päiväys: 20.03.22
        Yksinkertainen led vilkutin, jolla voidaan testata 
        led kytkennän toimivuus. Led syttyy ja sammuu 1 s välein.
    
        Sovellettu avoimen lähdekoodin esimerkistä:
        https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink
    */
    
    ledBlink.ino
    /*  
        ledBlink.ino Led vilkutin
        Kirjoittanut: Nicklas Uusitalo
        Päiväys: 20.03.22
        Yksinkertainen led vilkutin, jolla voidaan testata 
        led kytkennän toimivuus. Led syttyy ja sammuu 1 s välein.
    
        Sovellettu avoimen lähdekoodin esimerkistä:
        https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink
    */
    
    #define ledPin 2                  // Määritetään käytettävä pinni
    
    void setup() {
        pinMode(ledPin, OUTPUT);      // pinnin tila OUTPUT
    }
    
    void loop() {
        digitalWrite(ledPin, HIGH);   // Led päälle
        delay(1000);                  // Odotetaan 1 s
        digitalWrite(ledPin, LOW);    // Led pois päältä
        delay(1000);                  // Odotetaan 1 s
    }
    
  8. Lataa ohjelma kehitysalustalle

    Ohjelman lataaminen
    Ohjelman lataaminen

  9. Arduino IDE:n konsoliin tulisi tulla näkyviin viimeiselle riville upload complete. Tämän jälkeen kehitysalustaan kytketyn ledin tulisi vilkkua sekunnin välein.

    Testaa

    Kokeile muuttaa viivettä delay? Miten saat ledin pysymään päällä esim. 2 sekunttia ja pois päältä 1 sekunnin ajan?

    Vastaus

    Muuttamalla aikaisempaa viivettä 2 sekunttiin delay(2000).

Virhetilanteita

Yleisimipiä virhetilanteita

Virhetilanne

Laitevalinnasta ei ole mahdollista valita LilyPad Arduino USB

  • Tarkista sisäänrakennetun latauskytkimen asento CHG/ON -> ON
  • Tarkista USB-kaapeli, jos ongelma jatkuu kokeile toisella USB-kaapelilla.

Virhetilanne

Upload error: Failed uploading: no upload port provided

  • Tarkista, että yläpalkista on valittuna LilyPad Arduino USB
  • Tarkista sisäänrakennetun latauskytkimen asento CHG/ON -> ON
  • Tarkista USB-kaapeli, jos ongelma jatkuu kokeile toisella USB-kaapelilla.

Virhetilanne

Led ei vilku

  • Tarkista latautuiko koodi onnistuneesti -> upload complete
  • Tarkista ledin kytkentä ja varmista, että + ja - johtimet on kytketty ohjekuvan mukaisesti.
Takaisin ylös