1. Tee ohjelma, joka lukee kaksi lukua sarjaportin kautta Arduinolle muuttujiksi.  Tee tehtävä siten, että aina on annettava kaksi lukua. Näytä arvo ledin kirkkautena. 2p

    /*lukujen erotteleminen ASCII-coodatusta merkkijonosta parseInt() funktiolla.*/
    // LED pinni:
    const int lediPinni = 13;//vaihda pwm-lähdöksi
    void setup() {
      // alustetaan sarjaliikenne
      Serial.begin(9600);
    }
    void loop() {
      // onko sarjaporttia vapaana
      while (Serial.available() > 0) {
        // haetaan seuraava kokonaisluku merkkijonosta
        int EkaArvo = Serial.parseInt(); 
        // ja uudelleen
        int TokaArvo = Serial.parseInt(); 
        // ja vielä yksi
        int KolmasArvo = Serial.parseInt(); 
        // etsitään \n eli newline, tämä on viestin loppu
        if (Serial.read() == '\n') {
          // rajoitetaan arvo
          EkaArvo = constrain(EkaArvo, 0, 255); 
          analogWrite(lediPinni, EkaArvo);
          Serial.print(EkaArvo);
          Serial.print(" ");
          Serial.print(TokaArvo);
          Serial.print(" ");
          Serial.println(KolmasArvo);
        }
      }
    }
    
  2. Lisää edelliseen ohjelmaan toinen ledi ja "saturoi" sille vietävä arvo arvoon 255. Näytä arvo ledin kirkkautena.

  3. Tee ohjelma, joka säätää aseklmoottorin nopeuta. Kts. ohjeitA http://www.instructables.com/id/Arduino-Motor-Shield-Tutorial/

  4. Tee ohjelma, joka lukee kaksi analogia-arvoa ja saturoi ensimmäisen arvon suurimmillaan arvoon 100 ja skaalaa toisen arvon 0...1024 -> 0...200. Tämän jälkeen arvot lasketaan yhteen. Summa saturoidaan välille 0...255 ja laitetaan lediin 13. 4p

  5. Tee liikennevalot Arduinolla 1 autoille ja 1 jalankulkijoille (etsi apuja googlella, esim. täältä) Tee kytkennät koekytkentälevylle.  6p

  6. Lisää kytkentään potentiometri, jolla säädät autoille määräytyvää vihreää aikaa. 2p

  7. Lisää kytkentään nappi, jolla jalankulkijat voivat pyytää valojen vaihtoa. 2p

  8. Simuloi tien magneettikierukkaa napilla, siten että jalankulkijoille on aina vihreä valo, kun autoa ei ole tulossa. 2p

  9. Tee Arduinolle ohjelmallinen laskuri, joka laskee dig.tulon 1 nousevia reunoja. 2p

  10. Muuta tehtävää siten, että estetään kosketinvärähtelyjen laskeminen. Eil kaikki kytkennät jotka tapahtuvat 0.2 sekunnin aikana ensimmäisestä kytkennästä pitää estää.

  11. Tee ohjelma, joka lukee sarjaportilta enimmillään neljä numeroa ja kun on annettu A, viedään luku muuttujaan. Tee ohjelmaan tarkastus, ettei hyväksytä muita kuin numeroja (kts. esimerkki CharacterAnalysis)  esim. isDigit(merkki) ja ettei syötettäviä numeroita ole yli neljää. Lopuksi tarkasta, ettei luku ole yli 1024. Jos kaikki ehdot toteutuvat, talleta sarjaportilta tullut arvo muuttujaan. 6p

  12. Tee edellinen tehtävä siten, että luet kaikki merkit merkkijonomuuttujaan String jono ja muutat arvon String luokan funktiolla stringToInt kokonaisluvuksi. 3p

  13. Kytke Arduinoon pulssianturi(simuloi kahdella napilla) ja tee ohjelma, joka laskee ylöspäin kun anturia pyöritetään myötäpäivään ja vastapäivään pyöritettäessä laskurin arvoa vähennetään.  2p . Tee ohjelmaan lisäys, joka tarkastaa, että molemmat pulssianturijn kanavat tulevat oikeassa järjestyksessä. Ohjelma ei saa pysähtyä odottelemaan toista kanavaa 5p.

  14. Lisää ohjelmaan ominaisuus, joka nollaa laskurin, kun anturin indeksipulssi on tilassa 1 ja kotiasemapulssi on tosi. 2 p.

  15. Lisää ohjelmaan ominaisuus, joka laskee pulssien kaikki reunat.
  16. Suunnittele yksinkertainen polttoaineen suihkutusjärjestelmä. Järjestelmä sisältää  lambda-säädön  lambda control tuloina ovat pyyntö, lämpötila -30+120 astetta Celsiusta ja  lambda-arvo 0...5 V  ja lähtöinä kaasuläpän 0..255 ja polttoainesuihkutuksen asema(määrä) 0..255 .  Demoa järjestelmää potentiometrilla ja ja lähtöjä kahdella ledillä. Kun lämpötila on alle 80 astetta, rikastetaan polttoaineen syöttöä. Jos labda-arvo on välillä 0..0,5 V tai 4,5...5 V, ollaan virhetilassa. 2,5 V on oike seos ja alle 2,5 V rikkas seos. Jos lämpötila on yli 100 astetta, annetaan hälytys ledillä. 6 p.

  17. Liitä edelliseen tehtävään servomoottori säätämään kaasuläppää. 5 p

  • No labels
You must log in to comment.