Სარჩევი:
- მარაგები
- ნაბიჯი 1: Del Funcionamiento აღწერა
- ნაბიჯი 2: წრედები
- ნაბიჯი 3: პროგრამირება
- ნაბიჯი 4: დასკვნები
- ნაბიჯი 5: ბმულები Y Lecturas Relacionados
ვიდეო: Attiny85 Termómetro OLED: 5 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:16
ეს არის პროექტოლოგია, რომელიც მოიცავს მარტივ ტემპერატურულ ტემპერატურას, რომელიც დაკავშირებულია ტემპერატურულ მდგომარეობასთან. გაცნობიერებული აქვს ATmega328p, მაგრამ ეს არის საინტერესო, რომ არსებობს სხვადასხვა ვერსიები, რომლებიც გამოიყენება ATtiny85– სთან ერთად, როდესაც თქვენ იყენებთ ბატარეის კონვერგენს, რომელიც განისაზღვრება მათი პორტალებით.
გაგრძელება აღწერილი ფუნქციონალური, შემორჩენილი მრგვალი წრე და საბოლოო პროგრამის შემდგომი პროგრამით და კომენტატორებით sobre el proyecto en general.
მარაგები
1 x ATtiny85
1 x Arduino UNO/PRO/etc (programador del ATtiny)
1 x 128x64 პანტალა I2C OLED
1 x ტემპერატურის სენსორის DHT22
1 x რეზისტენტობა 4.7MOhm (1/4W)
1 x კონდენსატორის ელექტროლიტიკოსი 0.1uF
1 x Fuente de 3.3V - 5V 10+ x მხტუნავები
ნაბიჯი 1: Del Funcionamiento აღწერა
O 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.h para activar el termómetro manualmente y así reducir el konsumo para extensioner la batería.
თქვენ შეგიძლიათ გაეცნოთ პროგრამას, რომლის მიხედვითაც შეგიძლიათ იხილოთ პროცესი: Leer temperatura -> Mostrar temperatura en pantalla -> Apagar 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. უფასო DHT სენსორების ბიბლიოთეკა Adafruit (disponible en el IDE) და Tiny4kOLED მონაცემთა ბაზები, რომლებიც მითითებულია Github– ში, არის შემქმნელი, ორიგინალური და ორიგინალური მონაცემთა ბაზა, además, necesitaremos modificarla un poco luego.
El método de reinicio puede ser tanto un botón como dos placas metálicas que se tocan para encender el equipo. პირადად, ის აკონტროლებს ურთიერთობის დამყარების მეთოდებს.
ნაბიჯი 2: წრედები
პირველადი გამოსახულება არის ჩართული ელექტრული წრე, რომელიც მოითხოვს პროგრამის ATtiny85- ს. Primeramente se debe programar al Arduino (el capacitor debe estar desconectado) con ar skinoch ArduinoISP, que encuentra en Archivos -> Ejemplos -> 11. ArduinoISP. Una vez hecho esto se debe colocar el capacitor para evitar que nuestro Arduino se reinicie al programar el ATtiny85.
El ATtiny se puede alimentar directamente del Arduino. 85 წლის განმავლობაში, როდესაც თქვენ იყენებთ ერთ -ერთ ძირითად შესაძლებლობას, გექნებათ კონექტორული მასა (GND), Arduino y el ATtiny85.
Colocar un botón entre el pin 13 del Arduino y el 2 del ATtiny puede გაუადვილეთ თქვენს მომსახურებას, რომლითაც თქვენ არ გექნებათ კავშირი თქვენი პროგრამით ATtiny.
Como se observva 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.
ნაბიჯი 3: პროგრამირება
პირველ რიგში, აირჩიეთ "Arduino as ISP" პროგრამის შემქმნელი. თუ თქვენ არ გექნებათ ინსტალაცია la placa para el ATtiny, გირჩევთ ინსტალაცია გამოიყენოთ ATtinyCore de Spence Konde. Esta placa no me generó ningún problem in compilación durante la realización del proyecto.
თქვენ შეგიძლიათ დააკონფიგურიროთ BOD, დააინსტალირეთ 8MHz ინტერნეტი და OptiBoot. I2C– ის კომუნიკაციისთვის გამოიყენება 1MHz და არ არის გამოსადეგი 16MHz– ის გარე კრისტალზე, გამოიყენება ციფრული კვანძების, ელექტროენერგიის მნიშვნელოვანი მოხმარებისათვის.
Cabe destacar que he modificado un archivo en la librería Tiny4kOLED. El archivo modificado es "font8x16.h" y he cambiado la línea 117 by el siguiente código con el fin de cambiar el simbolo ~ por ° que usaremos en ° C.
0x00, 0x06, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
უწყვეტი გაგრძელება ესკიზის საჭიროება el proyecto.
#ჩართეთ #ჩართეთ #ჩართეთ #ჩართეთ #განსაზღვრეთ I_PINB PCINT3 #განსაზღვრეთ I_PIN PB3 #განსაზღვრეთ I_VECTOR PCINT0_vect #define adc_disable () (ADCSRA & = ~ (1 << aden)) გამორთეთ = "" adc = "" = 4 " #განსაზღვრეთ DHTTYPE DHT22 DHT dht (DHTPIN, DHTTYPE); const uint8_t სიგანე = 128; const uint8_t სიმაღლე = 64; არასტაბილური ბოლი აღმოჩნდა = ყალბი; / * * * შეწყვეტის დამმუშავებელი * */ISR (PCINT_VECTOR) {// შეწყვეტა ყოველთვის აღდგება ძილიდან თუ (digitalRead (I_PIN) == HIGH) {აღმოჩნდა = ჭეშმარიტი; // დროშის დაყენება ეკრანის ხელახლა გადასაკეთებლად}} void setup () {cli (); // გამორთვა შეწყვეტის PCMSK | = (1 << I_PINB]; GIMSK | = (1 << PCIE]; pinMode (I_PIN, INPUT); სეი (); // ჩართეთ შეწყვეტა adc_disable (); // ენერგიის დაზოგვა კონვერტორის გამორთვის set_sleep_mode (SLEEP_MODE_PWR_DOWN); // დააყენეთ ძილის ტიპი ღრმა ძილისთვის oled.begin (სიგანე, სიმაღლე, ზომა (tiny4koled_init_128x64br), tiny4koled_init_128x64br); // დაწყებული oled ობიექტის oled.setFont (FONT8X16); // ეს შრიფტი უკეთესია ვიდრე სხვა drawScreen (); oled.on (); დაგვიანება (2000); dht. დაწყება (); აღმოჩნდა = ჭეშმარიტი; // დროშა ეკრანის დახატვისთვის} void sleep () {sleep_enable (); sleep_cpu (); } void loop () {if (აღმოჩნდა) {cli (); // გამორთეთ შეწყვეტა oled.on (); float h = dht.readHumidity (); // ყალბი წაკითხვა dht cache დაგვიანებით გადატვირთვისთვის (2200); // დაელოდეთ dht ჩატვირთვა 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"); // ბიბლიოთეკაში შეიცვალა ~ სიმბოლო, რათა გამოიყურებოდეს ° გრადუსიანი სიმბოლოს დაყოვნება (5000); // აჩვენე 5 წამი oled.off (); აღმოჩნდა = ყალბი; sei (); // მიმაგრება კვლავ წყვეტს} ძილს (); // ყოველთვის დაიძინე ბოლოს} 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 ("ტემპი:"); oled.setCursor (4, 3); oled.print ("Hum:"); oled.setCursor (4, 5); oled.print ("გრძნობს:"); }
ნაბიჯი 4: დასკვნები
ეს არის უმნიშვნელო, როდესაც AT85– ს აქვს გაფართოებული გაძლიერება, რომელიც განისაზღვრება მათი შემდგომი განხორციელების შემდგომი კონტროლით, რაც გულისხმობს ფუნქციონირებას. პერსონალური არ არის შესაძლებელი, რომ შემოიტანოს კონტროლი პანტალაზე და ძილზე, რომელიც დაკავშირებულია მეხსიერების შეზღუდულ შეზღუდვებთან. Dichozamente, el programa ha entrado en nuestro ATtiny
არსებობს otras librerías para las pantallas OLED. უფასო GFX de Adafruit არ შემიძლია ნებადართული შევადგინო, თუ რა გადაწყვეტილებით მივიღე ის, რაც წინასწარ არის განსაზღვრული AT ATY– ში, მაგრამ არსებობს სხვა თავისუფალი შესაძლებლობები, რომლებიც განეკუთვნება ექსპლორის საინტერესო ინტერესებს
El Consumo del dispositivo es muy bajo. იმის გათვალისწინებით, რომ ის მუდმივია, მან უნდა შეაფასოს 3000 mAh (NiMH o LiIon) ბატარეის ბატარეა 500 დღეში. El Consumo podría მცირდება ჩემი desconectando la pantalla y el sensor sensor directe desde un pin del ATtiny, მაგრამ არა lo ის გავითვალისწინებ საჭიროებას
Según Technoblogy.com el ATtiny puede operer en un konsumo tan bajo como el mostrado en la primera imagen, pero en este proyecto he obtenido un Consumer Mayor რომელიც შეესაბამება მის მიერ გაფორმებულ სურათს. El Consumo de la batería Continúa siendo lo suficientemente bajo como para ser un proyecto factible
ნაბიჯი 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
გირჩევთ:
უფრო დიდი და გაუმჯობესებული საშობაო ვარსკვლავი Neopixel Attiny85: 3 ნაბიჯი (სურათებით)
უფრო დიდი და გაუმჯობესებული საშობაო ვარსკვლავი Neopixel Attiny85: შარშან მე გავაკეთე პატარა 3D ნაბეჭდი საშობაო ვარსკვლავი, იხილეთ https://www.instructables.com/id/Christmas-Star-LE..ამ წელს მე გავაკეთე უფრო დიდი ვარსკვლავი ძაფისგან 50 ნეოპიქსელისგან (5V WS2811). ამ უფრო დიდ ვარსკვლავს უფრო მეტი შაბლონი ჰქონდა (მე კვლავ ვამატებ და ვაუმჯობესებ
Digispark ATtiny85 ბატარეის ენერგიის მოხმარების შემცირება: 7 ნაბიჯი
ბატარეის ენერგიის მოხმარების შემცირება Digispark ATtiny85– ისთვის: ან: Arduino– ს გაშვება 2032 მონეტის უჯრედთან ერთად 2 წლის განმავლობაში. თქვენი Digispark Arduino დაფის გამოყენებით Arduino პროგრამის ყუთიდან ამოღება 20 mA 5 ვოლტზე. 5 ვოლტიანი დენის ბანკით 2000 mAh ის იმუშავებს მხოლოდ 4 დღის განმავლობაში
ATtiny85 Wearable Vibrating Activity Tracking Watch & Programming ATtiny85 Arduino Uno– ით: 4 ნაბიჯი (სურათებით)
ATtiny85 Wearable Vibrating Activity Tracking Watch & Programming ATtiny85 Arduino Uno– ით: როგორ გავხადოთ ტარებადი აქტივობის თვალთვალის საათი? ეს არის ტარებადი გაჯეტი, რომელიც შექმნილია ვიბრაციისთვის, როდესაც ის აღმოაჩენს სტაგნაციას. თქვენ უმეტეს დროს ატარებთ კომპიუტერზე ჩემნაირი? საათობით იჯექი ამის გაცნობიერების გარეშე? მაშინ ეს მოწყობილობა არის
Flappy Bird ATtiny85 და OLED ჩვენება SSD1306: 6 ნაბიჯი (სურათებით)
Flappy Bird ATtiny85– ზე და OLED Display SSD1306– ზე: ჰეი ყველას, დღეს მე გაჩვენებთ ძირითად flappy ფრინველთა კლონს, რომელიც მე შევქმენი და როგორ შეგიძლიათ გააკეთოთ მსგავსი თამაში. მე არსებითად გავავლებ ჩემს კოდს თქვენთან ერთად და ავუხსნი, თუ როგორ მუშაობს იგი ყოველ ნაბიჯზე. ეს თამაში აგებულია იმისათვის, რომ
სავიზიტო ბარათი/თამაშის კონსოლი: ATtiny85 და OLED ეკრანი: 5 ნაბიჯი (სურათებით)
სავიზიტო ბარათი/სათამაშო კონსოლი: ATtiny85 და OLED ეკრანი: გამარჯობა ყველას! დღეს მე ვაპირებ გაჩვენოთ, თუ როგორ შეგიძლიათ ააწყოთ თქვენი საკუთარი სავიზიტო ბარათი/სათამაშო კონსოლი/რისი წარმოდგენაც შეგიძლიათ, რომელიც აღჭურვილია უკანა შუქით I2C OLED დისპლეით და ATtiny85 მიკროპროცესორით. ამ ინსტრუქციებში მე გეტყვით როგორ გამოვიყენე PCB