Teach Urruneko laborategidun ikasgaiak

Teach ikasgaia

Arduino oinarriak 3/4: kontrolatu LEDaren erritmoa potentziometro batekin

Ikasleek potentziometro baten balioa irakurriko dute analogRead() bidez, map() erabiliz eraldatuko dute, eta benetako LED baten keinuen erritmoa kontrolatuko dute.

  • Arduino Taula (kodea)
  • 35 min
  • DBH / programazio fisikoaren hastapenak
  • eu
  • Embedded systems

Hasi saioa irakasle-kontu batekin klase-saioa prestatzeko. Ikasleak klase-kode batekin sartzen dira.

Arduino Taula (kodea)
Arduino Taula (kodea) · Laborategiaren xehetasunak

Ikaskuntza-emaitzak

  • Potentziometro baten balioa analogRead bidez irakurtzea.

  • Bihurgailu analogiko-digitalaren tarte teorikoa eta potentziometroaren benetako tarte erabilgarria bereiztea.

  • map() erabiltzea irakurketa bat ikus daitekeen ekintza bihurtzeko.

Ikaslearen jardueraren aurrebista

Jardueraren edukia

Aurrebista soilik. Klase-saio batean, ikasleek erantzunak bete eta lana irakasleari bidal diezaiokete.

1

Mundu fisikotik zenbaki batera

9 min

Potentziometroa biratzen den aginte bat bezalakoa da. Arduino Unoren bihurgailu analogiko-digitalak, lehenespenez, 0–5 V bitarteko tentsioak 0 eta 1023 arteko balioekin adierazten ditu. Laborategi honetako potentziometroak 0–3,3 V ematen du; beraz, irakurketaren tarte erabilgarria 0–675 da gutxi gorabehera. Kodeak irakurketa tarte horretara mugatzen du, eta 1. LEDaren keinuen erritmoa kontrolatzeko erabiltzen du:

const int lecturaMaxPot = 675;
int lectura = analogRead(A0);
int lecturaCalibrada = constrain(lectura, 0, lecturaMaxPot);
int espera = map(lecturaCalibrada, 0, lecturaMaxPot, 100, 1200);
delay(espera);

map() funtzioak 0tik hurbil dagoen irakurketa 100 ms inguruko itxaronaldi bihurtzen du, eta laborategiko gehieneko baliotik hurbil dagoena, 1200 ms inguruko itxaronaldi.

Kode-zati horren arabera, analogRead(A0) funtzioak zenbaki txiki bat itzultzen badu, itxaronaldia…

2

Erabili agintea LEDa kontrolatzeko

18 min

Kargatu programa. Biratu 1. potentziometroa eta behatu nola aldatzen den LEDaren keinuen erritmoa. Gero, aldatu 100, 1200 tartea, beste balio batzuk erabiliz. Adibidez, probatu gehieneko itxaronaldi laburrago bat, LEDa inoiz hain poliki piztu eta itzali ez dadin.

const int pot1 = A0;
const int led1 = 8;
const int lecturaMaxPot = 675;

void setup() {
  pinMode(led1, OUTPUT);
}

void loop() {
  int lectura = analogRead(pot1);
  int lecturaCalibrada = constrain(lectura, 0, lecturaMaxPot);
  int espera = map(lecturaCalibrada, 0, lecturaMaxPot, 100, 1200);

  digitalWrite(led1, HIGH);
  delay(espera);
  digitalWrite(led1, LOW);
  delay(espera);
}
  1. Ireki laborategia eta aurkitu 1. potentziometroa.

  2. Kargatu programa.

  3. Probatu potentziometroa gutxieneko baliotik hurbil, erdian eta gehieneko baliotik hurbil.

  4. Aldatu 100, 1200 tartea, beste balio batzuk erabiliz, eta probatu berriro.

Klase-saio batean erabilgarri

Aurkeztu zure kodea

Erantsi kodearen kopia, behatzeko argiena iruditu zaizun itxaronaldi-tartearekin. Erantsi aurretik, gorde main.ino laborategiko ingurunean. Kodearen kopiak irakasleak berrikustea nahi duzun programa jaso behar du.

3

Lotu zenbakia eta eragina

8 min

Deskribatu zer behatu duzun potentziometroa mugitzean. Zein itxaronaldi-tarte aukeratu duzu, eta zergatik?

Bihurtu aurrebista hau klase-saio batean

Jarraitu LabsLand Teach-era ikasgai hau ikasleekin erabiltzeko eta kontuaren sarbidea berrikusteko.