1. Encès i desactivació dels LEDs¶
Els pendents¶
- Enceneu i apagueu els díodes LED de l'escut Picuino.
- Generar parpelleig de LEDs amb el temps esperant.
Llibreta de gestió per a Arduino¶
Per començar a programar, és necessari
Al següent lloc web podeu veure com els passos necessaris per a la instal·lació d’una llibreria per a Arduino.
: Ref: add-library
La funció `` ledWrite ''`¶
-
ledWrite
(int ledNum, int bright)¶ Aquesta funció permet activar o desactivar un LED específic. Els seus paràmetres són els següents:
`` lednum``: LED que s’encendrà o s’apagarà. Els valors vàlids oscil·len entre 1 per a LED D1 a 8 per al color blau del LED D6.
El LED D6 és un LED RGB, que integra 3 LEDs al seu interior. Els números 6, 7, 8 representen respectivament els colors vermells, verds i blaus del LED D6.
- `` Bright``: Brillo amb el qual s’encén el LED.
- `` Led_off``: Apagueu el LED. Es pot substituir pel número zero.
- `` Led_``: encén el LED amb la intensitat màxima.
- Valors entre 2 i 255: encendre el LED amb una intensitat proporcional al nombre.
Encén el LED D1¶
El següent programa encantarà definitivament el LED D1
1 2 3 4 5 6 7 8 9 10 11 | // Enciende el led D1
#include <Picuino.h>
void setup() {
pio.begin(); // Inicializar el shield Picuino UNO
pio.ledWrite(1, LED_ON); // Encender el led D1
}
void loop() {
}
|
LED D1 Flash¶
Si voleu activar i desactivar el LED D1 amb un període de segon, una manera de fer -ho és encendre el LED, esperar mig segon, apagar el LED i esperar mig segon. Quan es repeteix aquesta seqüència, el LED parpelleja. Per aconseguir una meitat de segon, s’utilitza la funció `` retard (500) `` que provoca 500 mil·lisegons (0,5 segons). Per assegurar -se que la seqüència es repeteix indefinidament, el codi s’introdueix dins del bloc `` bucle () ``, que es repeteix una i altra vegada un cop iniciat el programa Arduino.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | // Parpadea el led D1
#include <Picuino.h>
void setup() {
pio.begin(); // Inicializar el shield Picuino UNO
}
void loop() {
pio.ledWrite(1, LED_ON); // Encender el led D1
delay(500); // Esperar medio segundo (500 ms)
pio.ledWrite(1, LED_OFF); // Apagar el led D1
delay(500); // Esperar medio segundo (500 ms)
}
|
Exercicis¶
Programa el codi necessari per resoldre els problemes següents.
Enceneu de forma permanent les LEDES D1, D3 i D5.
Enceneu el LED D1, espereu un segon, activeu el LED D2, espereu un segon i continueu fins que els primers 5 LED estiguin encesos. Un cop finalitzat, el programa mantindrà els 5 LED encesos.
Enceneu els LEDs vermells, ambre i verds com en un semàfor.
Primer el LED verd s’encendrà i es mantindrà durant 4 segons. El LED verd s’apagarà i el LED ambre s’encendrà durant 2 segons. Finalment, el LED ambre s’apagarà i el vermell s’encendrà, que es mantindrà durant 4 segons.
Aquesta seqüència es repetirà indefinidament.
Modificar l'exercici 3 per a l'ambre va provocar parpellejar tres vegades, canviant l'encesa per extingir cada meitat segon, abans d'encendre el LED vermell.
Programa una balisa que s’encén alternativament el LED vermell i el LED blau. Cada LED ha de romandre un segon. Un dels dos LED sempre ha de ser i mai serà els dos LED alhora.
Enceneu el LED D1, espereu un segon, apagueu el LED D1 i engegueu el LED D2. S'encendran d'aquesta manera, consecutivament, els primers 5 LED. En cada moment només hi haurà un LED. Un cop finalitzada la seqüència, tornarà a començar des del principi.
Feu una modificació a l’exercici anterior de manera que en tot moment hi hagi 2 LEDES encès. Al començament del programa, els LED D1 i D2 s’han d’encendre. Al cap d'un segon, els LeDes D2 i D3 s'encendran. La seqüència continuarà fins que arribi a la situació inicial.
El programa següent té diversos errors, corregeix els errors sintàctics perquè funcionin correctament.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
// Enciende 6 ledes en secuencia a derecha y a izquierda // Programa con errores sintácticos #include <Picuino.h> void setup() { pio.begin(); // Inicializar el shield Picuino UNO pio.ledWrite(1, LED_on); } void loop() { for(char i=1; i<=5; i++) { pio.ledwrite(i+1, LED_ON); // Encender el led siguiente delay(250); // Esperar 250 milisegundos pio.ledWrite(i, LED_OFF); // Apagar el led anterior delay(100); // Esperar 100 milisegundos } for(char i=5; i>=1; i--) { pio.ledWrite(i, LED_ON); // Encender el led anterior delay(250); // Esperar 250 milisegundos pio.ledWrite(i+1, LED_OFF); // Apagar el led siguiente delay(100); // Esperar 100 milisegundos }
Realitzeu un programa que parpelleja D1 una vegada per segon al mateix temps que D2 parpelleja dues vegades per segon.