INHOUDSOPGAWE:
- Voorrade
- Stap 1: Beskryf die funksie
- Stap 2: Circuitos
- Stap 3: Programmeer
- Stap 4: Gevolgtrekkings
- Stap 5: Skakels Y Lecturas Relacionados
Video: Attiny85 Termómetro OLED: 5 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
Este proyecto consiste en un termómetro pequeño y simple que muestra la facta actual, la humedad relativa y el índice de temperatura. Ons kan dit met ATmega328p realiseer, maar dit is ook moontlik om 'n versameling van ATtiny85 te gebruik om 'n konvergeerde en verwante battery te gebruik.
'N Voortgesette beskrywing van die funksionering, wat die hele kring en die finalisering van die programme en algemene kommentare in die algemeen beskryf.
Voorrade
1 x ATtiny85
1 x Arduino UNO/PRO/etc (programmeerder van ATtiny)
1 x 128x64 pantalla I2C OLED
1 x Sensortemperatuur DHT22
1 x weerstand 4.7MOhm (1/4W)
1 x kondensator electrolítico 0.1uF
1 x Fuente de 3.3V - 5V 10+ x Jumpers
Stap 1: Beskryf die funksie
Die doelwit is om meer as een keer na die oles te kyk, maar ons kan ook die gebruik van 'n slaapstelsel gebruik. la batería.
Nuestro programa se guiará por el siguiente proceso: Leer temperature -> Mostra temperatura en pantalla -> Apatar ATtiny -> Reiniciar al presionar botón.
Para cada uno de estos pasos dejaremos la mayor parte del trabajo a las librerías ya existentes, por lo que no reinventaremos la rueda. Die biblioteek van die DHT -sensorbiblioteek van Adafruit (beskikbaar vir IDE) en Tiny4kOLED -data wat ons kan aflaai, sowel as 'n oorspronklike outeur van die oorspronklike data, verskaffers, modifikasies wat nodig is om te verander.
Ons kan ook 'n volledige weergawe van hierdie metode gebruik om met die toestel te werk. Persoonlik kan hy meer as een van die interaktiewe aspekte van die boek gebruik.
Stap 2: Circuitos
'N Laaste prentjie kan 'n omskakeling vir die kring van die program vir ATtiny85 gee. Primeramente se debe programar al Arduino (el capacitor debe estar desconectado) with el sketch ArduinoISP, que se encuentra en Archivos -> Ejemplos -> 11. ArduinoISP. U kan dit ook gebruik om die kondensator van die kapasiteit vir die nuutste arduino te herken.
El ATtiny se puede alimentar directamente del Arduino. En caso de utilizar una fuente de poder como una batería es necesario conectar la masa (GND) del Arduino y el ATtiny85.
Ons bied 'n volledige toegang tot pin 13 van Arduino en 2 van ATtiny puede fasiliteerders wat u kan gebruik om nie 'n volledige program vir ATTiny te gebruik nie.
Kom ons kyk na die beelde. El pin SDA del ATyiny es el 0 y el SCL/CLK es el 2. Nuestro DHT está conectado en el pin 4.
Stap 3: Programmeer
Primeramente, debemos seleccionar "Arduino as ISP" como el programador. Ons kan nie meer 'n plek vir ATtiny installeer nie, maar ek kan ook die ATtinyCore de Spence Konde installeer. Esta placa no me generó ningún problema de compilación durante la realización del proyecto.
Ons kan die BOD -konfigurasie met 'n 8MHz -interne en optiBoot -stelsel herlaai. Ons gebruik 1MHz -kommunikasie vir I2C en is moontlik om 'n 16MHz -ekstern -stelsel te gebruik, sowel as digitale funksies en energieverbruik.
Ons kan die weergawe van Tiny4kOLED verander. Die argiefmodifikasie is 'font8x16.h' en hy kan 117 keer vir die eerste keer gebruik word om die kamille te gebruik ~ vir ° que usaremos en ° C.
0x00, 0x06, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
'N Vervolg van 'n skets wat noodsaaklik is vir 'n projekto.
#include #include #include #include #define I_PINB PCINT3 #define I_PIN PB3 #define I_VECTOR PCINT0_vect #define adc_disable () (ADCSRA & = ~ (1 << aden)) disable = "" adc = "" converter #define DHTPIN #define DHTTYPE DHT22 DHT dht (DHTPIN, DHTTYPE); const uint8_t breedte = 128; const uint8_t hoogte = 64; vlugtige bool gedraai = vals; / * * * Interrupt -hanteerder * */ISR (PCINT_VECTOR) {// interrupt herstel altyd uit die slaap as (digitalRead (I_PIN) == HOOG) {gedraai = waar; // stel die vlag weer in om die skerm weer te teken}} ongeldige opstelling () {cli (); // skakel onderbreek PCMSK | = (1 << I_PINB); GIMSK | = (1 << PCIE); pinMode (I_PIN, INPUT); sei (); // skakel onderbrekings adc_disable () aan; // bespaar krag deur die omskakelaar set_sleep_mode (SLEEP_MODE_PWR_DOWN) uit te skakel; // stel die tipe slaap in op diepe slaap oled.begin (breedte, hoogte, grootte van (tiny4koled_init_128x64br), tiny4koled_init_128x64br); // begin oled voorwerp oled.setFont (FONT8X16); // hierdie lettertipe lyk beter as die ander tekenScreen (); oled.on (); vertraging (2000); dht.begin (); gedraai = waar; // vlag vir tekenskerm} leegte slaap () {slaap_enable (); slaap_cpu (); } leemte -lus () {as (gedraai) {cli (); // skakel onderbrekings af oled.on (); float h = dht.readHumidity (); // vals lees om dht -kasvertraging (2200) terug te stel; // wag dht om h = dht.readHumidity () te laai; float t = dht.readTemperature (); float i = dht.computeHeatIndex (t, h, false); oled.setCursor (55, 1); oled.print (t); oled.print ("~ C"); oled.setCursor (55, 3); oled.print (h, 0); oled.print ("%"); oled.setCursor (55, 5); oled.print (i); oled.print ("~ C"); // die ~ simbool is verander in die biblioteek om soos 'n ° graad simboolvertraging (5000) te lyk; // wys vir 5 sekondes oled.off (); gedraai = vals; sei (); // heg weer onderbrekings aan} slaap (); // gaan slaap altyd aan die einde} void drawScreen () {// teken die raam en die hoofteks vir (uint8_t y = 0; y <8; y ++) {oled.setCursor (0, y); oled.startData (); vir (uint8_t x = 0; x <128; x += 2) {oled.sendData (0b10101010); oled.sendData (0b01010101); } oled.endData (); } oled.setCursor (0, 0); oled.startData (); oled.sendData (0b11111111); oled.repeatData (0b00000101, breedte - 2); oled.sendData (0b11111111); oled.endData (); vir (uint8_t y = 1; y <(hoogte - 8) / 8; y ++) {oled.setCursor (0, y); oled.startData (); oled.sendData (0b11111111); oled.repeatData (0b00000000, breedte - 2); oled.sendData (0b11111111); oled.endData (); } oled.setCursor (0, (hoogte - 8) / 8); oled.startData (); oled.sendData (0b11111111); oled.repeatData (0b10100000, breedte - 2); oled.sendData (0b11111111); oled.endData (); oled.setCursor (4, 1); oled.print ("Temp:"); oled.setCursor (4, 3); oled.print ("Hum:"); oled.setCursor (4, 5); oled.print ("Sens:"); }
Stap 4: Gevolgtrekkings
'N Belangrike insiggewendheid, van ATTiny85 of 'n groter aantal funksies vir die funksionering van die funksies. Persoonlike funksies om die beheer van pantalla en slaapprogramme in te sluit, sluit die limiete in. Dichozamente, el programa ha entrado en nuestro ATtiny
Bestaan otras librerías para las pantallas OLED. La librería GFX de Adafruit no me permitió compilar por lo que decidí buscar algo precisamente para el ATtiny, pero existen otras librerías and soluciones que son interesantes de explorar
Ons verbruikers kan dit ook gebruik. Oorweeg dit om 'n normale gebruik te maak, en dit kan 'n gemiddelde skatting van 3000 mAh (NiMH o LiIon) en 500 dia's gee. Ons verbruik kan 'n vermindering van die toestand van die sensor en die aanwysing van 'n sensor in die vorm van 'n sensor inhou, maar ons moet dit nie oorweeg nie
Según Technoblogy.com el ATtiny puede operar en un consumo tan bajo como el mostrado en la primera image, pero en este proyecto he obtenido en consumo burgemeester que correspondonde al de la segunda image. Die verbruik van die kontinuïteit kan op 'n werklike wyse plaasvind
Stap 5: Skakels Y Lecturas Relacionados
www.technoblogy.com/show?KX0&fbclid=IwAR0qu…
github.com/SpenceKonde/ATTinyCore
www.electroschematics.com/am2302-dht22-dat…
ww1.microchip.com/downloads/en/DeviceDoc/A…
embedded Thoughts.com/2016/06/06/attiny85-i…
www.instructables.com/id/ATtiny85-Interrup…
www.technoblogy.com/show?WNM
www.technoblogy.com/show?2F5D
Aanbeveel:
Groter en verbeterde Christmas Star Neopixel Attiny85: 3 stappe (met foto's)
Groter en verbeterde Christmas Star Neopixel Attiny85: Verlede jaar het ek 'n klein 3D-gedrukte kersster gemaak, sien https://www.instructables.com/id/Christmas-Star-LE…This year I made a large star from a string van 50 Neopixels (5V WS2811). Hierdie groter ster het meer patrone (ek voeg nog by en verbeter
ATtiny85 draagbare trilaktiwiteitsopsporing Horlosie en programmering ATtiny85 met Arduino Uno: 4 stappe (met foto's)
ATtiny85 draagbare trilaktiwiteitsopsporingshorlosie en programmering ATtiny85 met Arduino Uno: hoe kan u die draagbare aktiwiteitopsporing laat kyk? Dit is 'n draagbare apparaat wat ontwerp is om te vibreer wanneer dit stagnasie opspoor. Spandeer u die meeste van u tyd op die rekenaar soos ek? Sit u ure sonder om dit te besef? Dan is hierdie toestel f
Hoe om 'n stapmotor te gebruik as 'n draaikodeerder en 'n OLED -skerm vir stappe: 6 stappe
Hoe om 'n stapmotor te gebruik as 'n draaikodeerder en 'n OLED -skerm vir stappe: in hierdie tutoriaal leer ons hoe u die stappermotorstappe op die OLED -skerm kan volg. Kyk na 'n demonstrasievideo. Krediet vir die oorspronklike handleiding gaan na die YouTube -gebruiker " sky4fly "
Flappy Bird op ATtiny85 en OLED Display SSD1306: 6 stappe (met foto's)
Flappy Bird op ATtiny85 en OLED Display SSD1306: Hey almal, vandag gaan ek u 'n basiese klapvoëlkloon wat ek geskep het, wys en hoe u 'n soortgelyke speletjie kan maak. Ek gaan in wese deur my kode deur en verduidelik hoe dit elke stap werk. Hierdie speletjie is gebou om
Besigheidskaart/spelkonsole: ATtiny85 en OLED -skerm: 5 stappe (met foto's)
Besigheidskaart/spelkonsole: ATtiny85 en OLED -skerm: Hallo almal! Vandag gaan ek u wys hoe u u eie besigheidskaartjie/spelkonsole kan bou/wat u ook al kan voorstel, met 'n I2C OLED -skerm met agtergrond en 'n ATtiny85 -mikroverwerker. In hierdie Instructable vertel ek u hoe 'n PCB wat ek ontwerp het