Obsah:

Attiny85 Termómetro OLED: 5 kroků
Attiny85 Termómetro OLED: 5 kroků

Video: Attiny85 Termómetro OLED: 5 kroků

Video: Attiny85 Termómetro OLED: 5 kroků
Video: ATtiny13 и ATtiny85. Обзор и программирование с помощью Arduino 2024, Prosinec
Anonim
Attiny85 Termómetro OLED
Attiny85 Termómetro OLED
Attiny85 Termómetro OLED
Attiny85 Termómetro OLED

Nejčastěji se jedná o jednoduchou a aktuální teplotu, relativní relativní teplotu a teplotu. Nejčastěji se jedná o použití ATmega328p, ale o další zajímavé možnosti využití ATtiny85, které umožňují konverzi a spotřebu baterií a jejich využití.

Pokračující popis základních funkcí, výběr hlavních obvodů a finální program a další obecné poznámky.

Zásoby

1 x ATtiny85

1 x Arduino UNO/PRO/atd. (Programátor del ATtiny)

1 x 128x64 pantalla I2C OLED

1 x teplotní senzor DHT22

1 x odpor 4,7MOhm (1/4W)

1 x kondenzátor elektrolytický 0,1uF

1 x Fuente de 3.3V - 5V 10+ x propojky

Krok 1: Popis Del Funcionamiento

Nejčastěji se jedná o předcházející nabídky OLED, více, více objekčních sekundario, včetně použití spánku, přerušení.h para aktivar el termómetro manualmente y así reducir el consumero para extender la vida la baterie.

Další program, který se má zpracovat, je: Leer temperatura -> Mostrar temperatura en pantalla -> Apagar ATtiny -> Reiniciar al presionar botón.

Para cada uno de estos pasos dejaremos la starosta parte del trabajo a las librerías ya existentes, por lo que no reinventaremos la rueda. Liberecká knihovna snímačů DHT od Adafruit (dostupné v IDE) a Tiny4kOLED pro datové přenosy z Githubu, al parecer, autor původních datových souborů, además, necesitaremos modificarla un poco luego.

Znovu a znovu se můžete vrátit k většímu počtu skladeb, které můžete poslouchat a vybavit. Z osobního hlediska zpracovává více interakcí.

Krok 2: Okruhy

Obvody
Obvody
Obvody
Obvody
Obvody
Obvody

Základní informace o programu jsou uvedeny v programu ATtiny85. Programy základního programu Arduino (kondenzátorový modul s možností připojení) skica ArduinoISP, více informací z archivu -> Ejemplos -> 11. ArduinoISP. Nejčastěji se jedná o kondenzátor barevného el. Kondenzátoru, který je nyní k dispozici pro Arduino.

El ATtiny se vybírají přímo z Arduina. Používejte co nejvíce zdrojů a baterií, které potřebujete, abyste připojili masu (GND) k Arduino y el ATtiny85.

Více barevných vstupů 13 různých Arduino y 2 del ATtiny puede facilitar el hacer pruebas ya que la pantalla no puede estar conectada cuando se programa al ATtiny.

Como se observa en las imágenes. El pin SDA del ATyiny es el 0 y el SCL/CLK es el 2. Nuestro DHT está conectado en el pin 4.

Krok 3: Programování

Primeramente, výběr programu "Arduino as ISP" jako programátor. Si aún no han instalado la placa para el ATtiny, recomiendo installr la placa ATtinyCore de Spence Konde. Problém s generováním problémů spojených s kompilací durante la realización del proyecto.

Konfigurace vašeho místa na BOD, 8MHz interní a OptiBoot. Používá se 1MHz komunikace I2C a není k dispozici 16MHz externí krystalický signál, což znamená, že může docházet k energetickým ztrátám.

Cabe destacar que he modificado un archivo en la librería Tiny4kOLED. Změny archivu mohou být provedeny "font8x16.h" y cambiado la linea 117 por el siguiente código con el fin de cambiar el símbolo ~ por ° que usaremos en ° C.

0x00, 0x06, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

Pokračování náčrtu je nutné pro další účely.

#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 = "" převodník #define DHTPIN 4 #define DHTTYPE DHT22 DHT dht (DHTPIN, DHTTYPE); const uint8_t šířka = 128; const uint8_t výška = 64; volatile bool turned = false; / * * * Obsluha přerušení * */ISR (PCINT_VECTOR) {// přerušení se vždy probere ze spánku, pokud (digitalRead (I_PIN) == HIGH) {turn = true; // nastavení vlajky na překreslení obrazovky znovu}} void setup () {cli (); // vypnout přerušení PCMSK | = (1 << I_PINB); GIMSK | = (1 << PCIE); pinMode (I_PIN, INPUT); sei (); // zapnout přerušení adc_disable (); // úspora energie vypnutím převodníku set_sleep_mode (SLEEP_MODE_PWR_DOWN); // nastavit typ spánku na hluboký spánek oled.begin (šířka, výška, velikostof (tiny4koled_init_128x64br), tiny4koled_init_128x64br); // start oled object oled.setFont (FONT8X16); // toto písmo vypadá lépe než to druhé drawScreen (); oled.on (); zpoždění (2000); dht.begin (); otočeno = pravda; // příznak pro kreslení obrazovky} void sleep () {sleep_enable (); sleep_cpu (); } void loop () {if (otočeno) {cli (); // vypnout přerušení oled.on (); float h = dht.readHumidity (); // false read to reset dht cache delay (2200); // wait dht to load h = dht.readHumidity (); 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"); // symbol ~ byl v knihovně změněn, aby vypadal jako zpoždění symbolu ° stupně (5000); // show na 5 sekund oled.off (); otočeno = nepravda; sei (); // znovu připojit přerušení} sleep (); // vždy na konci usnout} void drawScreen () {// vykreslí rámeček jako hlavní text pro (uint8_t y = 0; y <8; y ++) {oled.setCursor (0, y); oled.startData (); pro (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, šířka - 2); oled.sendData (0b11111111); oled.endData (); pro (uint8_t y = 1; y <(výška - 8) / 8; y ++) {oled.setCursor (0, y); oled.startData (); oled.sendData (0b11111111); oled.repeatData (0b00000000, šířka - 2); oled.sendData (0b11111111); oled.endData (); } oled.setCursor (0, (výška - 8) / 8); oled.startData (); oled.sendData (0b11111111); oled.repeatData (0b10100000, šířka - 2); oled.sendData (0b11111111); oled.endData (); oled.setCursor (4, 1); oled.print ("Teplota:"); oled.setCursor (4, 3); oled.print ("Hum:"); oled.setCursor (4, 5); oled.print ("Sens:"); }

Krok 4: Závěry

Závěry
Závěry
Závěry
Závěry

Bez ohledu na to, co je bezvýznamné, jsou k dispozici všechny 85 různých možností použití, implementace a implementace důležitých funkcí. Osobní údaje, které jsou k dispozici, zahrnují kontrolu nad spánkem a spánek, které mohou vést k omezení paměti. Dichozamente, el programa ha entrado en nuestro ATtiny

Existující otrasné knihovny pro OLED. Knihovna GFX de Adafruit no me allowiócom Compilar por lo que decisioní buscar algo precisamente para el ATtiny, per existen otras librerías y soluciones que son interesantes de explorar

Spotřeba se může lišit. Vezměte v úvahu konstantní kapacitu, kterou můžete odhadnout na 500 mAh nebo NiMH nebo LiIon. Spotřebovává se a snižuje počet snímačů a snímačů, které se dají oddělit od ATtiny, ale bez ohledu na to, co je třeba

Více Technoblogy. Spotřeba baterie je dostatečná a je dostatečně účinná

Krok 5: Odkazy Y Lecturas Relacionados

www.technoblogy.com/show?KX0&fbclid=IwAR0qu…

github.com/SpenceKonde/ATTinyCore

www.electroschematics.com/am2302-dht22-dat…

ww1.microchip.com/downloads/cs/DeviceDoc/A…

embeddedoughts.com/2016/06/06/attiny85-i…

www.instructables.com/id/ATtiny85-Interrup…

www.technoblogy.com/show?WNM

www.technoblogy.com/show?2F5D

Doporučuje: