- ADC0804 i Raspberry Pi:
- Sensor de temperatura LM35:
- Components necessaris:
- Circuit i explicació de treball:
- Explicació de la programació:
Hem cobert principalment tots els components bàsics que interfacen amb Raspberry Pi a la nostra sèrie de tutorials de Raspberry Pi. Hem cobert tots els tutorials de manera senzilla i detallada, de manera que qualsevol persona, tant si ha treballat amb Raspberry Pi com si no, pot aprendre fàcilment d'aquesta sèrie. I després de passar per tots els tutorials, podreu construir alguns projectes d’alt nivell amb Raspberry Pi.
Per tant, aquí estem dissenyant la primera aplicació basada en els tutorials anteriors. La primera aplicació bàsica és una temperatura de la sala de lectura de Raspberry Pi. I podeu supervisar les lectures a l'ordinador.
Com es va comentar en tutorials anteriors, no hi ha canals ADC proporcionats internament a Raspberry Pi. Per tant, si volem connectar qualsevol sensor analògic, necessitarem una unitat de conversió ADC. I en un dels nostres tutorials tenim el xip ADC0804 Interfaced a Raspberry Pi per llegir un valor analògic. Per tant, passeu-ho abans de construir aquest termòmetre de temperatura ambient.
ADC0804 i Raspberry Pi:
ADC0804 és un xip dissenyat per convertir el senyal analògic en dades digitals de 8 bits. Aquest xip és una de les sèries més populars d’ADC. Es tracta d’una unitat de conversió de 8 bits, de manera que tenim valors o de 0 a 255. La resolució d’aquest xip canvia en funció del voltatge de referència que triem; en parlarem més endavant. A continuació es mostra el Pinout de l’ADC0804:

Ara una altra cosa important aquí és que l' ADC0804 funciona a 5V i, per tant, proporciona sortida en senyal lògic de 5V. A la sortida de 8 pins (que representa 8 bits), cada pin proporciona una sortida de + 5 V per representar la lògica '1'. Per tant, el problema és que la lògica PI és de + 3,3 v, de manera que no podeu donar una lògica de + 5 V al pin GPIO de + 3,3 V de PI. Si doneu + 5 V a qualsevol pin GPIO de PI, la placa es fa malbé.
Per tant, per reduir el nivell lògic de + 5V, farem servir un circuit divisor de tensió. Hem comentat que el circuit divisor de tensió el va examinar prèviament per obtenir més aclariments. El que farem és que utilitzem dues resistències per dividir la lògica de + 5V en lògiques de 2 * 2,5V. Per tant, després de la divisió donarem una lògica de + 2.5v a PI. Per tant, sempre que ADC0804 presenti la lògica '1', veurem + 2,5 V al pin PI GPIO, en lloc de + 5 V.
Sensor de temperatura LM35:
Ara, per llegir la temperatura de l’habitació, necessitem un sensor. Aquí utilitzarem el sensor de temperatura LM35. La temperatura es mesura normalment en “centígrads” o “Fahrenheit”. El sensor "LM35" proporciona sortida en graus centígrads.


Com es mostra a la figura, LM35 és un dispositiu similar a un transistor de tres pins. Els pins estan numerats com, PIN1 = Vcc - Alimentació (connectat a + 5V)
PIN2 = Senyal o sortida (connectat al xip ADC)
PIN3 = Terra (connectat a terra)
Aquest sensor proporciona voltatge variable a la sortida, segons la temperatura. Per cada augment de temperatura de +1 centígrads hi haurà una tensió de + 10 mV més alta al pin de sortida. Així doncs, si la temperatura és de 0◦ centígrads la sortida del sensor serà de 0V, si la temperatura és de 10◦ centígrads la sortida del sensor serà de + 100mV, si la temperatura és de 25◦ centígrads la sortida del sensor serà de + 250mV.
Components necessaris:
Aquí fem servir Raspberry Pi 2 Model B amb Raspbian Jessie OS. Tots els requisits bàsics de maquinari i programari s’han comentat prèviament. Podeu consultar-los a la introducció de Raspberry Pi, a part d’això que necessitem:
- Pins de connexió
- Resistència 1KΩ (17 peces)
- Olla de 10K
- Condensador de 0,1µF
- Condensador de 100µF
- Condensador de 1000µF
- ADC0804 IC
- Sensor de temperatura LM35
- Taula de pa
Circuit i explicació de treball:
Les connexions que es fan per connectar Raspberry a ADC0804 i LM35 es mostren al diagrama de circuits següent.

La sortida LM35 té moltes fluctuacions de voltatge; de manera que s’utilitza un condensador de 100uF per suavitzar la sortida, tal com es mostra a la figura.
L’ADC sempre té molt de soroll, aquest soroll pot afectar molt el rendiment, de manera que fem servir condensador de 0,1 uF per a la filtració de soroll. Sense això, hi haurà moltes fluctuacions en la producció.
El xip funciona al rellotge de l’oscil·lador RC (Resistor-Capacitor). Com es mostra al diagrama de circuits , C2 i R20 formen un rellotge. L'important que cal recordar aquí és que el condensador C2 es pot canviar a un valor inferior per obtenir una taxa de conversió ADC més alta. No obstant això, amb una velocitat més alta, hi haurà una disminució de la precisió. Per tant, si l’aplicació requereix una precisió més alta, trieu el condensador amb un valor més alt i, per a una velocitat més alta, trieu el condensador amb un valor inferior.
Com es va dir anteriorment, el LM35 proporciona + 10mV per cada centígrad. La temperatura màxima que es pot mesurar amb el LM35 és de 150º centígrads. Per tant, tindrem un màxim d’1,5 V al terminal de sortida LM35. Però el voltatge de referència per defecte de l'ADC0804 és de + 5V. Per tant, si fem servir aquest valor de referència, la resolució de la sortida serà baixa perquè utilitzaríem un màxim de (5 / 1,5) el 34% del rang de sortida digital.
Per sort, l'ADC0804 té un passador Vref ajustable (PIN9), tal i com es mostra al seu diagrama de pins. Així, establirem el Vref del xip a + 2V. Per configurar Vref + 2V, hem de proporcionar una tensió de + 1V (VREF / 2) al PIN9. Aquí estem utilitzant pot de 10K per ajustar el voltatge del PIN9 a + 1V. Utilitzeu el voltímetre per obtenir el voltatge precís.
Anteriorment hem utilitzat el sensor de temperatura LM35 per llegir la temperatura ambient amb Arduino i amb el microcontrolador AVR. Comproveu també la mesura de la humitat i la temperatura amb Arduino
Explicació de la programació:
Un cop tot estigui connectat segons el diagrama del circuit, podem activar el PI per escriure el programa en PYHTON.
Parlarem de poques ordres que farem servir al programa PYHTON, Importarem un fitxer GPIO de la biblioteca, la funció següent ens permet programar pins GPIO de PI. També estem canviant el nom de "GPIO" per "IO", de manera que al programa sempre que vulguem referir-nos als pins GPIO utilitzarem la paraula "IO".
importar RPi.GPIO com a IO
De vegades, quan els pins GPIO, que estem intentant utilitzar, poden estar fent algunes altres funcions. En aquest cas, rebrem avisos mentre executem el programa. L'ordre següent indica al PI que ignori les advertències i que continuï amb el programa.
IO.setwarnings (fals)
Podem referir els pins GPIO de PI, ja sigui pel número de pin a bord o pel seu número de funció. Igual que el "PIN 29" al tauler és "GPIO5". Així doncs, aquí expliquem que aquí representarem el passador per "29" o "5".
IO.setmode (IO.BCM)
Estem configurant 8 pins com a pins d'entrada. Detectarem 8 bits de dades ADC per aquests pins.
IO.setup (4, IO.IN) IO.setup (17, IO.IN) IO.setup (27, IO.IN) IO.setup (22, IO.IN) IO.setup (5, IO.IN) IO.setup (6, IO.IN) IO.setup (13, IO.IN) IO.setup (19, IO.IN)
En cas que la condició dels claudàtors sigui certa, les sentències dins del bucle s'executaran una vegada. Per tant, si el pin GPIO 19 augmenta, les instruccions del bucle IF s’executaran una vegada. Si el pin GPIO 19 no augmenta, les sentències del bucle IF no s'executaran.
if (IO.input (19) == True):
L'ordre de sota s'utilitza com a bucle per sempre, amb aquesta ordre les instruccions dins d'aquest bucle s'executaran contínuament.
Mentre que 1:
A la secció de codi següent es proporciona una explicació addicional del codi.
Després d’escriure el programa, és hora d’executar-lo. Abans d'executar el programa, es parla del Resum del que està passant al circuit. El primer sensor LM35 detecta la temperatura ambient i proporciona una tensió analògica a la seva sortida. Aquest voltatge variable representa la temperatura linealment amb + 10mV per ºC. Aquest senyal s’alimenta al xip ADC0804, aquest xip converteix el valor analògic en valor digital amb 255/200 = 1,275 recompte per10mv o 1,275 recompte per 1 grau. Aquest recompte l’inclou PI GPIO. El programa converteix el recompte en valor de temperatura i el mostra a la pantalla. La temperatura típica llegida per PI es mostra a continuació, Per tant, tenim aquest monitor de temperatura Raspberry Pi.
