Un sensor és un dispositiu capaç de mesurar una magnitud física o química. Per exemple, un termòmetre és un sensor que permet mesurar la temperatura d'un objecte, persona o líquid; un sensor de moviment com els que s'utilitzen a les alarmes és capaç de detectar la presència de persones al seu voltant; un velocímetre d'una bicicleta o d'un cotxe, mesura les variacions de la velocitat de les rodes, i així un llarg etcétera.
Se t'acudeixen més sensors? Feu una llista i indiqueu les variables que mesuren.
La majoria de sensors transformen els canvis de les magnitud físiques que mesuren, en canvis d'una magnitud elèctrica. Per exemple, un sensor de llum LDR transforma les variacions de la quantitat de llum del seu entorn en variacions de la seva resistència elèctrica.
Arduino permet la connexió de molts tipus diferents de sensors que mesuren variables diverses i que internament es mesuren com a variacions de tensió elèctrica.
Hi ha dos tipus de sensors:
analògics
digitals
Per tant, alguns es connectaran als pins analògics de la placa d'Arduino i d'altres als pins digitals. Ho veurem en cada cas.
En aquest muntatge anem a simular la il·luminació d'una habitació amb un sensor de llum LDR. El funcionament és el següent: si hi ha molta llum provinent del Sol (és de dia), els leds estan apagats. Si hi ha poca llum (s'està fent de nit), els leds s'engeguen.
Una LDR, de l'anglès Light Dependent Resistance, és a dir, Resistència depenent de la llum, és un sensor que mesura variacions en la llum de l'entorn gràcies a la variació de la seva resistència elèctrica. És un petit sensor de la mida d'una llentia.
Com es veu a la gràfica que relaciona la resistència elèctrica (és a dir, dificultat al pas dels electrons a través seu) amb la quantitat de llum de l'entorn, a mesura que augmenta la llum, disminueix la resistència. I al revés, amb poca llum, la resistència és molt alta.
El sensor de llum LDR és un sensor analògic i, per tant, es connecta a un dels pins analògics de la placa Arduino, numerats de l'A0 a l'A5.
En els pins analògics d'Arduino les mesures dels sensors varien entre 0 i 1023 . Corresponent a:
0 --> 0V
1023 --> 5V
Per tant, la mesura d'un sensor ens donara un valor comprés entre 0 i 1023. Per exemple, en el cas del sensor de llum LDR, podem tenir un valor de 300 amb poca llum, i un valor de 950 amb molta llum.
La mesura d'un sensor, per exemple la quantitat de llum a cada moment que mesura la LDR (valor entre 0 i 1023) s'emmagatzema en una variable.
En el món de la programació informàtica una variable és un espai de la memòria que emmagatzema una informació que canvia en el temps. Aquesta variable pot ser un número, una lletra o un text, o una variable booliana (0 o 1, vertader o fals).
En Arduino les variables s'han de declarar. Així per exemple, si volem mesurar la quantitat de llum del sensor LDR, crearem una variable amb un nom, per exemple "llum", on es guardarà temporalment aquest valor.
En ArduinoBlocks, totes les instruccions relacionades amb les variables estan en el bloc de programació "Variables".
I com podem saber el valor d'una variable en un moment determinat?
Per fer això farem ús del port sèrie d'Arduino. El port sèrie permet la comunicació entre la placa d'Arduino i l'ordinador en dos sentits:
Enviar informació de la placa Arduino a l'ordinador: per exemple, el valor d'una variable mesurada per un sensor.
Rebre informació de l'ordinador a la placa Arduino: per exemple, enviant el valor de l'angle de gir d'un servomotor des del teclat de l'ordinador a la placa i al servomotor.
Totes les instruccions relacionades amb el Port sèrie estan agrupades en el mateix bloc d'ArduinoBlocks:
I on podem veure les dades que s'envien o es reben mitjançant el port sèrie? Doncs en el monitor del port sèrie, que es troba a l'apartat "Consola".
Atenció, per poder entrar a la consola del port sèrie, cal que el programa estigui pujat a la placa i que el cable USB estigui connectat.
Ara sí, després d'aquestes explicacions prèvies i necessàries, anem a fer el muntatge:
Components per al muntatge:
Placa Arduino Uno
Connectors
4 leds grocs (o de qualsevol altre color)
4 resistències de 220 Ω per limitar el corrent que arriba als leds
1 sensor de llum LDR
1 resistència de 10 KΩ, per fer un divisor de tensió amb la LDR
Programació del muntatge
Grava un petit vídeo d'uns 10 segons en què es vegi el muntatge i la programació anterior. Penja la tasca a l'apartat corresponent del Classroom.
Com has pogut veure en el muntatge d'aquesta pràctica, tots els leds s'engeguen al mateix temps quan la quantitat de llum baixa per sota d'un valor que hem prefixat nosaltres prèviament. En l'ampliació d'aquesta pràctica, el que volem aconseguir és que els leds es vagin encenen progressivament (d'un en un), a mesura que disminueix la quantitat de llum de l'entorn. Seria com una il·luminació intel·ligent.
Per aconseguir-ho, haurem de crear diversos condicionals, i en cadascun d'ells comparar la variable llum amb un valor màxim i mínim. És a dir, farem una comparació doble. Aquesta comparació doble la podràs fer amb el bloc de "lògica" "i", i posant dos comparacions, una amb el signe menor, i l'altra amb signe major.
La programació seria més o menys com aquesta. Però tu hauràs d'adaptar els valor de la quantitat de llum en les diferents comparacions, ja que a cada espai els valors de llum que medeix el sensor LDR varien. També hauràs d'acabar la programació dels condicionals i les comparacions.