8. IO-Portit (analogiset, digitaaliset), sensorin liittäminen, kirjastot
- https://www.arduino.cc/en/Reference/AnalogRead
- https://www.arduino.cc/en/Tutorial/PWM
- https://www.arduino.cc/en/Reference/DigitalRead
- https://www.arduino.cc/en/Reference/DigitalWrite
- https://www.arduino.cc/en/Tutorial/ADXL3xx
- https://www.arduino.cc/en/Tutorial/DigitalPins
- https://www.youtube.com/watch?v=G9_pQzt1sts
Tehtävät
- Tee toteutus, jossa kahdella kytkimellä ohjataan neljää LEDiä. Kun kumpikin kytkin on auki -> LED1 palaa, muut ei. Kun kytkin1 on kiinni ja kytkin2 auki -> palaa LED2, jne. Kytkimenä voi käyttää johtoa, joka kytketään maahan (0) tai käyttöjännitteeseen (1). LEDeillä pitää olla etuvastukset jotta ne eivät mene rikki.
- NTC-vastuksen käyttö lämpötilan mittaamiseen: kytkentään tarvitaan NTC-vastus ja 10kohm vastus, jotka kytketään sarjaan käyttöjännitteen ja maan välille. Keskipiste kytketään AD-muuntimen tuloon.
- Testaa esimerkkiohjelman (NTC_readValue) toiminta
- Lisää mittauksen luotettavuutta seuraavalla toiminnolla: tee mittaus 10 kertaa (for-silmukka) ja ota mittauksista keskiarvo, jota jatkokäsitellään ohjelmassa.
- Optio: Ota 11 mittauksesta mediaani. Kumpi olisi mielestäsi parempi tapa (keskiarvon vai mediaanin käyttö)?
- NTC-vastusmittauksen kalibrointi:
- Edellisen tehtävän mukaisen mittauksen perusteella määritellään lämpötila. Muunnoksen (ja kalibroinnin) voi tehdä esim. käyttämällä B-parametriyhtälöä (https://learn.adafruit.com/thermistor/using-a-thermistor) tai muodostamalla yhtälö Excelillä (trendline). Tavoitteena on < 1 C asteen tarkkuus.
- DS18x20-anturin käyttö lämpötilan mittaamiseen (esim. http://www.pjrc.com/teensy/td_libs_OneWire.html):
- Asenna kirjasto (Onewire tai vastaava)
- Etsi ja testaa esimerkkikoodi
- Tutustu koodiin ja tee omia muutoksia toimintaan.
- Servon ohjaaminen: servon ohjaaminen tapahtuu PWM-lähdöllä (pulssinleveysmodulaatio)
- Tutustu mitä servo ja PWM tarkoittaa ja miten ne toimivat. Optio: mittaa PWM-lähtöä oskilloskoopilla se seuraa miten se muuttuu, kun muutat parametreja.
- Etsi sopiva koodi servon ohjaamiseen ja testaa toiminta.
- Muokkaa ohjelma siten, että syöttämällä kulman suuruuden sarjamonitoriin tai potentiometrilla servo kääntyy oikeaan kulmaan. Mitkä ovat suurin ja pienin kulma mihin servo kääntyy?