Агуулгын хүснэгт:

Attiny85 Termómetro OLED: 5 алхам
Attiny85 Termómetro OLED: 5 алхам

Видео: Attiny85 Termómetro OLED: 5 алхам

Видео: Attiny85 Termómetro OLED: 5 алхам
Видео: Термометр на олед дисплее 0.96". Финишная прошивка от goldenandy. 2024, Аравдугаар сар
Anonim
Attiny85 Termómetro OLED
Attiny85 Termómetro OLED
Attiny85 Termómetro OLED
Attiny85 Termómetro OLED

Төгсгөлд нь энгийн бөгөөд энгийн температур, температурын хамаарал байдаг. ATmega328p -ийг ашиглах нь ATtiny85 -ийг ашиглахад чухал үүрэг гүйцэтгэдэг.

Тасралтгүй тайлбарлах нь ерөнхий функцууд, ерөнхий хэлхээ холбоо, хэлхээний програм хангамжийн ерөнхий хөтөлбөрүүдийн ерөнхий тайлбар юм.

Хангамж

1 x ATtiny85

1 x Arduino UNO/PRO/etc (програмын дель ATtiny)

1 x 128x64 хэмжээтэй I2C OLED

1 x Мэдрэгч температур DHT22

1 x Resistencia 4.7MOhm (1/4W)

1 x конденсаторын цахилгаан цэнэг 0.1uF

1 x Fuente de 3.3V - 5V 10+ x холбогч

Алхам 1: Del Funcionamiento -ийн тайлбар

El objetivo del proyecto es mostrar los tres valores anteriormente mencionados en la pantalla OLED, además, como objetivo secundario, e incluido el uso de la librería sleep.he interrupt. la batería.

Нэвтрүүлгийн програмууд нь: Дараах температур -> Харанхуй температур -> Апагар ATtiny -> Reiniciar al presionar botón.

Төгсгөлд нь хэлэхэд, хотын дарга бол одоо байгаа зүйлүүд юм. Adafruit -ийн DHT мэдрэгчийн номын сан нь Tiny4kOLED -ийн өгөгдөлд Github эсвэл бусад файлуудыг татаж авах боломжийг олгоно, өөр өөр эх сурвалжууд, өгөгдөл, өгөгдөл, програм хангамжууд байдаг.

Тэмдэглэл нь компьютерийн тоног төхөөрөмжөөр тоноглогдсон байдаг. Хувийн мэдээллийг харвал тэрээр интерактив харилцаа холбоог хязгаарласан болно.

Алхам 2: Circuitos

Дугуй
Дугуй
Дугуй
Дугуй
Дугуй
Дугуй

ATtiny85 програмыг ашиглахын тулд хэлхээний схемийг тохируулж болно. Програмыг Arduino програмаар (конденсатор ашиглах боломжтой) ArduinoISP -ийн ноорог, Archivos -> Ejemplos -> 11. ArduinoISP. ATtiny85 програмыг ашиглан конденсаторыг худалдаж аваарай.

Тайлбарыг буцааж англи (Америкийн Нэгдсэн Улс) руу орчуулах Орчуулах El ATtiny se puede alimentar directamente del del Arduino. Энэ програмыг ашиглахын тулд та хүснэгт (GND) del Arduino y el ATtiny85 -ийг ашиглах боломжтой болно.

Colocar un botón entre el pin pin 13 del Arduino y el 2 del ATtiny a faciitar facilitar el hacer pruebas ya que la pantalla no puede estar conectada cuando se programa al ATtiny.

Комо ажиглалтын арга хэмжээ. El pin SDA del ATyiny es el 0 y el SCL/CLK es el 2. Nuestro DHT está conectado en el pin 4.

Алхам 3: Хөтөлбөр

Анхдагч байдлаар, "Arduino as ISP" програмыг сонгосон. ATtiny, ATtinyCore де Spence Konde -ийн хамгийн сайн тохиргоог хий. Энэ нь ямар ч асуудал үүсгэхгүй байх ёстой.

BOD -ийн тохиргоог хийхдээ OptiBoot -ийг 8MHz интернэтээр холбоно уу. IMC нь 1МГц -ийн багтаамжгүй бөгөөд 16 МГц давтамжтай гадаад дэлгэцийг ашиглах боломжтой болно.

Энэ нь Tiny4kOLED -ийн архивын архивыг устгах боломжтой юм. "Font8x16.h" гэсэн архивын хэлбэрүүд нь 117 дугаартай бөгөөд энэ нь хамгийн том хэмжигдэхүүн юм.

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

Үргэлжлүүлэн хийх шаардлагатай зүйл бол ноорог юм.

#include #include #include #define I_PINB PCINT3 #тодорхойлох I_PIN PB3 #тодорхойлох I_VECTOR PCINT0_vect #define adc_disable () (ADCSRA & = ~ (1 << aden)) disable = "" adc = "" converterIN # #тодорхойлох DHTTYPE DHT22 DHT dht (DHTPIN, DHTTYPE); const uint8_t өргөн = 128; const uint8_t өндөр = 64; дэгдэмхий bool болсон = худал; / * * * Тасалдлын зохицуулагч * */ISR (PCINT_VECTOR) {// тасалдал нь үргэлж (digitalRead (I_PIN) == HIGH) {turn = true; // тугийг дэлгэцийг дахин зурахаар тохируулна уу}} void setup () {cli (); // PCMSK тасалдлыг унтраах | = (1 << I_PINB); GIMSK | = (1 << PCIE); pinMode (I_PIN, INPUT); sei (); // тасалдлыг асаах adc_disable (); // хөрвүүлэгчийг унтраах унтраах горимыг унтраах (SLEEP_MODE_PWR_DOWN); // нойрны төрлийг гүн нойронд оруулах oled.begin (өргөн, өндөр, хэмжээ (tiny4koled_init_128x64br), tiny4koled_init_128x64br); // oled объектыг эхлүүлэх oled.setFont (FONT8X16); // энэ фонт нь нөгөөхөөсөө илүү харагдаж байна drawScreen (); oled.on (); саатал (2000); dht.begin (); эргэсэн = үнэн; // дэлгэц зурах туг} void sleep () {sleep_enable (); унтах_cpu (); } void loop () {if (эргэсэн) {cli (); // тасалдлыг унтраах oled.on (); float h = dht.readHumidity (); // false уншсанаар dht кэшийн саатлыг (2200) дахин тохируулах; // d = ачааллыг хүлээх hht.readHumidity (); float t = dht.readTemperature (); float i = dht.computeHeatIndex (t, h, false); oled.setCursor (55, 1); oled.хэвлэх (t); oled.print ("~ C"); oled.setCursor (55, 3); oled.хэвлэх (h, 0); oled.print ("%"); oled.setCursor (55, 5); oled.print (i); oled.print ("~ C"); // номын сан дээрх ~ тэмдгийг ° градусын тэмдэгийн саатал (5000) шиг болгож өөрчилсөн; // 5 секундын турш үзүүлэх oled.off (); эргэсэн = худал; sei (); // тасалдлыг дахин хавсаргах} sleep (); // үргэлж төгсгөлд нь унтдаг} void drawScreen () {// хүрээг үндсэн текст болгож (uint8_t y = 0; y <8; y ++) {oled.setCursor (0, y); oled.startData (); for (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, өргөн - 2); oled.sendData (0b11111111); oled.endData (); for (uint8_t y = 1; y <(өндөр - 8) / 8; y ++) {oled.setCursor (0, y); oled.startData (); oled.sendData (0b11111111); oled.repeatData (0b00000000, өргөн - 2); oled.sendData (0b11111111); oled.endData (); } oled.setCursor (0, (өндөр - 8) / 8); oled.startData (); oled.sendData (0b11111111); oled.repeatData (0b10100000, өргөн - 2); oled.sendData (0b11111111); oled.endData (); oled.setCursor (4, 1); oled.print ("Temp:"); oled.setCursor (4, 3); oled.print ("Хум:"); oled.setCursor (4, 5); oled.print ("Мэдрэмж:"); }

Алхам 4: Дүгнэлт

Дүгнэлт
Дүгнэлт
Дүгнэлт
Дүгнэлт

Хамгийн чухал зүйл бол ATTiny85 програмыг ашиглах явдал юм. Хяналт шалгалт байхгүй бол хувийн хяналт байхгүй болно. Энэ бол ATtiny програмын програм юм

OLED -ийн номын сангууд байдаг. GFX де Adafruit нь надад ямар ч зөвшөөрөл өгөхгүй байж магадгүй юм

Энэ бол маш чухал зүйл юм. 3000 mAh (NiMH o LiIon) хүртэл 500 дижитал хэмжээтэй байх ёстой. Мэдээллийг шууд ашиглахын тулд ATTiny -ийг ашиглах боломжтой болно

Según Technoblogy.com сайтын нэр томъёо нь таны хүсэлтийг биелүүлэхэд туслах болно. Үнэн хэрэгтээ энэ нь үнэн зөв байх болно

Алхам 5: 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…

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

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

www.technoblogy.com/show?WNM

www.technoblogy.com/show?2F5D

Зөвлөмж болгож буй: