Teach Urruneko laborategidun ikasgaiak

Teach ikasgaia

Arduino oinarriak 4/4: sortu kontrolagailu txiki bat

Ikasleek potentziometroa, serbomotorra eta LEDa bateratuko dituzte kontrolagailu txiki bat diseinatzeko: sarrera analogikoa, erabakia eta irteera ikusgarria.

  • Arduino Taula (kodea)
  • 40 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

  • Sarrera analogikoa, baldintzak eta bi irteera konbinatzea.

  • Servo liburutegia programa erraz batean erabiltzea.

  • Programatutako sistema baten portaera azaltzea.

Ikaslearen jardueraren aurrebista

Jardueraren edukia

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

1

Diseinatu kodea aldatu aurretik

8 min

Hiru osagai dituzu: 1. potentziometroa, serbomotor bat eta 1. LEDa. Proiektu honetan, potentziometroak serbomotorraren posizioa kontrolatuko du, eta LEDa abisu gisa erabiliko da serbomotorrak angelu jakin bat gainditzen duenean. Angelu-muga horri atalasea esango diogu.

Serbomotorraren angelua 0 eta 180 gradu artekoa da. Atalase baxu batek, adibidez 60 gradukoak, LEDa goiz piztuko luke, mugimenduaren lehen herenaren amaiera inguruan. 90 graduko atalaseak ibilbidearen erdialdean piztuko luke. Atalase altuago batek, adibidez 120 gradukoak, serbomotorra mugimenduaren azken herenean dagoenean bakarrik piztuko luke. Programatu aurretik, aukeratu eman nahi duzun abisurako erabilgarria izango den atalasea.

Arduino Unoren bihurgailu analogiko-digitalak, lehenespenez, 0–1023 eskala erabiltzen du 0–5 V adierazteko. Laborategi honetako potentziometroa 3,3 V-era iristen da; irakurketaren balioa 675 ingurukoa da orduan. Programak tarte erabilgarri hori serbomotorraren 0–180 graduko ibilbide osora egokitzen du.

Zein angelu gainditzean piztuko zenuke LEDa: 60, 90, 120 gradu ala beste balio bat? Azaldu zergatik izango litzatekeen atalase hori erabilgarria.

2

Programatu kontrolagailua

22 min

Orain, alderatu zure ideia soluzio honekin: potentziometroak serbomotorraren angelua kontrolatzen du, 0 eta 180 gradu artean, eta 1. LEDa angelua 90 gradu baino handiagoa denean pizten da. Kargatu programa. Gero, aldatu baldintza, LEDa 120 gradutik gora bakarrik pizteko. Gakoa if aginduko lerroan dago: ez aldatu LEDaren edo serbomotorraren pina, zergatik egiten duzun ez badakizu.

#include <Servo.h>

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

Servo servo;

void setup() {
  pinMode(led1, OUTPUT);
  servo.attach(servoPin);
}

void loop() {
  int lectura = analogRead(pot1);
  int lecturaCalibrada = constrain(lectura, 0, lecturaMaxPot);
  int angulo = map(lecturaCalibrada, 0, lecturaMaxPot, 0, 180);

  servo.write(angulo);

  if (angulo > 90) {
    digitalWrite(led1, HIGH);
  } else {
    digitalWrite(led1, LOW);
  }

  delay(20);
}
  1. Ireki Arduino laborategia.

  2. Kargatu oinarrizko programa eta behatu serbomotorra.

  3. Biratu 1. potentziometroa poliki.

  4. Ordezkatu angulo > 90 baldintza angulo > 120 baldintzarekin eta kargatu berriro.

  5. Gorde fitxategia kodearen kopia egin aurretik.

  6. Egokitu orain baldintza aukeratu duzun abisu-atalasera. Mantendu > alderaketa zorrotza: LEDa itzalita dago angelua atalasearen berdina denean, eta piztuta, handiagoa denean. Probatu atalasearen azpiko eta gaineko posizioak; egiaztatu kodean zer gertatzen den berdintasunaren kasuan. Gorde azken programa hori.

Klase-saio batean erabilgarri

Aurkeztu zure kodea

Guztiontzako 120 graduko adibidea probatu ondoren, aurkeztu aukeratu duzun atalasea duen azken kodea. main.ino fitxategian, gehitu // ikurrez hasten diren iruzkinak: adierazi aukeratutako atalasea eta haren azpitik eta gainetik behatutako LEDaren egoera, eta azaldu zer egiten duen > alderaketa zorrotzak angelua atalasearen berdina denean. Gorde fitxategia kodearen kopia erantsi aurretik.

3

Amaitu proiektua

10 min

Azaldu sistema hiru hitz hauek erabiliz: sarrera, erabakia eta irteera. Denbora gehiago izango bazenu zer hobetuko zenukeen ere azal dezakezu.

Bihurtu aurrebista hau klase-saio batean

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