Բովանդակություն:
- Պարագաներ
- Քայլ 1: Del Funcionamiento նկարագրությունը
- Քայլ 2: Շրջաններ
- Քայլ 3: aciրագրավորում
- Քայլ 4: Եզրակացություններ
- Քայլ 5. Հղումներ Y Lecturas Relacionados
Video: Attiny85 Termómetro OLED ՝ 5 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
Este proyecto- ն բաղկացած է տերմինների չափման և պարզ ջերմաստիճանի իրական ջերմաստիճանից, որը վերաբերում է ջերմաստիճանի բարձրացմանը: Puede realizarse con un ATmega328p, pero lo interesante de esta versión is utilizar un ATtiny85 cuyo tamaño y konsumo de batería convergen en un dispositivo pequeño y portátil.
Շարունակությունը նկարագրում է իր գործառույթները, ընտրում է շրջանառության և վերջնական ծրագրի ընդհանուր ծրագրերը:
Պարագաներ
1 x ATtiny85
1 x Arduino UNO/PRO/etc (programador del ATtiny)
1 x 128x64 pantalla 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.h para activar el termómetro manualmente y así reducir el սպառման para երկարացում լա բատերիա:
Արագ ջերմաստիճանի ռեժիմ -> 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 ya que descargaremos, ինչպես նաև տվյալների փոխանցման սկզբնական աղբյուրի, ինչպես նաև անհրաժեշտության 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: Շրջաններ
En la primer imagen se encuentra el circuito que Requerimos para programar el ATtiny85. Primeramente se debe programar al Arduino (el capacitor debe estar desconectado) con el sketch ArduinoISP, que se 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. En caso de utilisar una fuente de poder como una batería es necesario conectar la masa (GND) del Arduino y el ATtiny85.
Colocar un botón entre el pin 13 del Arduino y el 2 del ATtiny puede Facilitar el hacer pruebas ya que la pantalla no puede estar conectada cuando se programa al 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: aciրագրավորում
Պրեմիերա, «Arduino as ISP» ընտրանի, որը ծրագրավորող է: Si aún no han instalado la placa para el ATtiny, խորհուրդ ենք տալիս տեղադրել instalar la placa ATtinyCore de Spence Konde: Esta placa no me generó ningún problema de compilación durante la realización del proyecto.
Տեղադրեք այն մեղավոր BOD- ի կարգավորումը, միացրեք 8MHz միջերեսը և OptiBoot- ը: I2C- ի միջոցով չօգտագործվող 1 ՄՀց արագությամբ և 16 ՄՀց հաճախականությամբ օգտագործվում են թվային թվեր, սպառողական էներգիայի զգալի աղբյուրներ:
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 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
Շարունակական շարունակություն, որն անհրաժեշտ է նախնական նախագծի համար:
#ներառել #ներառել #ներառել #ներառել #սահմանել I_PINB PCINT3 #սահմանել I_PIN PB3 #սահմանել I_VECTOR PCINT0_vect #define adc_disable () (ADCSRA & = ~ (1 << aden)) անջատել = "" adc = "" փոխարկիչ #" #սահմանել DHTTYPE DHT22 DHT dht (DHTPIN, DHTTYPE); const uint8_t լայնություն = 128; const uint8_t բարձրություն = 64; ցնդող բուլը վերածվեց = կեղծ; / * * * Ընդհատումների կառավարիչ * */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 (); // խնայել էներգիան ՝ անջատիչ փոխարկիչ set_sleep_mode (SLEEP_MODE_PWR_DOWN); // քնի տեսակը սահմանել խոր քուն oled.begin (լայնություն, բարձրություն, չափս (tiny4koled_init_128x64br), tiny4koled_init_128x64br); // սկսել oled.setFont օբյեկտը (FONT8X16); // այս տառատեսակն ավելի լավ տեսք ունի, քան մյուսը drawScreen (); oled.on (); ուշացում (2000); dht.begin (); շրջվեց = ճշմարիտ; // էկրան նկարելու դրոշակ} void sleep () {sleep_enable (); sleep_cpu (); } void loop () {if (turn) {cli (); // անջատել ընդհատումները oled.on (); float h = dht.readHumidity (); // կեղծ ընթերցում dht քեշի հետաձգումը վերականգնելու համար (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 (ժ, 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 (); համար (uint8_t x = 0; x <128; x += 2) {oled.sendData (0b10101010); oled.send Տվյալներ (0b01010101); } oled.endData (); } oled.setCursor (0, 0); oled.startData (); oled.send Տվյալներ (0b11111111); oled.repeatData (0b00000101, լայնությունը `2); oled.send Տվյալներ (0b11111111); oled.endData (); համար (uint8_t y = 1; y <(բարձրություն - 8) / 8; y ++) {oled.setCursor (0, y); oled.startData (); oled.send Տվյալներ (0b11111111); oled.repeatData (0b00000000, լայնությունը `2); oled.send Տվյալներ (0b11111111); oled.endData (); } oled.setCursor (0, (բարձրությունը `8) / 8); oled.startData (); oled.send Տվյալներ (0b11111111); oled.repeatData (0b10100000, լայնությունը `2); oled.send Տվյալներ (0b11111111); oled.endData (); oled.setCursor (4, 1); oled.print («Տեմպ.»); oled.setCursor (4, 3); oled.print («Հոմ.»); oled.setCursor (4, 5); oled.print («ensգայարաններ»); }
Քայլ 4: Եզրակացություններ
A pesar de su tamaño աննշան, el ATtiny85 ofrece una amplia gama de aplicaciones en las que podemos implementar este controlador de bajo costo sin perder funcionalidad. Personalmente no esperaba que fuera posible incluir el control de pantalla y de sleep քունտոիդ դեբիդո a las limitaciones de memoria. Dichozamente, el programa ha entrado en nuestro ATtiny:
Գոյություն ունեն ազատ ձկնատեսակներ OLED: Անվճար GFX de Adafruit no me թույլտվություն է տալիս, որպեսզի որոշեմ buscar algo precisamente para el ATtiny, pero existen otras librerías y soluciones que son interesantes de explorerar
El Consumo del dispositivo es muy bajo. Հաշվի առնելով մեր մշտական մակարդակը, նա կարող է գնահատել 3000 մԱհ (NiMH o LiIon) մարտկոցը ՝ 500 օրում: El Consumo podría reducirse aún más desconectando la pantalla y el sensor directamente desde un pin del ATtiny, բայց ոչ lo նա հաշվի է առնում անհրաժեշտությունը:
Según Technoblogy.com el ATtiny puede օպերատոր en un konsumo tan bajo como el mostrado en la primera imagen, pero en este proyecto he obtenido un սպառo քաղաքապետի նամակագրության մեջ, որը համապատասխանում է դե լեգենդա պատկերին: 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/hy/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
Խորհուրդ ենք տալիս:
Ավելի մեծ և կատարելագործված Սուրբ Neննդյան աստղ Neopixel Attiny85: 3 քայլ (նկարներով)
Ավելի մեծ և կատարելագործված Սուրբ Neննդյան աստղ Neopixel Attiny85. Անցյալ տարի ես պատրաստեցի ամանորյա փոքրիկ 3D տպագիր աստղ, տե՛ս https://www.instructables.com/id/Christmas-Star-LE .. Այս տարի ես ավելի մեծ աստղ պատրաստեցի: 50 նեոպիքսելից (5 Վ WS2811): Այս ավելի մեծ աստղն ուներ ավելի շատ նախշեր (ես դեռ ավելացնում և իմացնում եմ
ATtiny85 Wearable Vibrating Activity Tracking Watch & Programming ATtiny85 Arduino Uno- ով. 4 քայլ (նկարներով)
ATtiny85 Wearable Vibrating Activity Tracking Watch & Programming ATtiny85 Arduino Uno- ի հետ. Ինչպե՞ս դարձնել կրելի գործունեության հետևող ժամացույց: Սա կրելի սարք է, որը նախատեսված է թրթռալու համար, երբ հայտնաբերում է լճացում: Դուք ժամանակի մեծ մասն ինձ պես համակարգչո՞վ եք անցկացնում: Դուք ժամեր շարունակ նստած եք ՝ դա չգիտակցելով: Ապա այս սարքը զ
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ) `8 քայլ
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ). Ուլտրաձայնային ձայնային փոխարկիչներ L298N Dc կանացի ադապտեր էներգիայի մատակարարում արական dc pin Arduino UNOBreadboard և անալոգային նավահանգիստներ ՝ կոդը փոխարկելու համար (C ++)
Flappy Bird ATtiny85- ի և OLED Display SSD1306- ի վրա. 6 քայլ (նկարներով)
Flappy Bird- ը ATtiny85- ի և OLED Display SSD1306- ի վրա. Բարև բոլորին, այսօր ես ձեզ ցույց կտամ իմ ստեղծած թռչունների հիմնական կլոնը և ինչպես կարող եք նման խաղ պատրաստել: Ես ըստ էության ձեզ հետ կանցնեմ իմ ծածկագրով և կբացատրեմ, թե ինչպես է այն աշխատում ամեն քայլափոխի: Այս խաղը կառուցված է ru
Բիզնես քարտ/խաղային վահանակ ՝ ATtiny85 և OLED էկրան ՝ 5 քայլ (նկարներով)
Այցեքարտ/Խաղային վահանակ ՝ ATtiny85 և OLED էկրան. Բարև բոլորին: Այսօր ես ձեզ ցույց կտամ, թե ինչպես կարող եք կառուցել ձեր սեփական այցեքարտը/խաղային վահանակը/ինչ կարող եք պատկերացնել, որն ունի լուսավորված I2C OLED էկրան և ATtiny85 միկրոպրոցեսոր: Այս Ուղեցույցում ես ձեզ կպատմեմ, թե ինչպես եմ իմ պատրաստած PCB- ն