সুচিপত্র:
- সরবরাহ
- ধাপ 1: ডেল ফানসিওমিয়েন্টো বর্ণনা করুন
- ধাপ 2: সার্কিটোস
- ধাপ 3: প্রোগ্রাম
- ধাপ 4: উপসংহার
- ধাপ 5: লিঙ্ক Y লেকটুরাস Relacionados
ভিডিও: Attiny85 Termómetro OLED: 5 ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 07:58
Este proyecto consiste en un termómetro pequeño y simple que muestra la temperatura actual, la humedad relationiva y el ndice de temperatura। Puede realizarse con un ATmega328p, pero lo interesante de esta versión es utilizar un ATtiny85 cuyo tamaño y consuo de batería convergen en un dispositivo pequeño y portátil।
একটি ধারাবাহিক বর্ণনা el funcionamiento, seguido mostraré el circuito y finalizaré con el programma y algunos comentarios sobre el proyecto en general।
সরবরাহ
1 x ATtiny85
1 x Arduino UNO/PRO/etc (programmador del ATtiny)
1 x 128x64 প্যান্টাল্লা I2C OLED
1 এক্স সেন্সর তাপমাত্রা DHT22
1 x রেজিস্টেন্সিয়া 4.7MOhm (1/4W)
1 x ক্যাপাসিটর ইলেক্ট্রোলিটিকো 0.1uF
1 x Fuente de 3.3V - 5V 10+ x Jumpers
ধাপ 1: ডেল ফানসিওমিয়েন্টো বর্ণনা করুন
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í reducer laduca লা ব্যাটারিয়া।
Nuestro programma se guiará por el siguiente proceso: 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। লা লিবারেরিয়া ডিএইচটি সেন্সর লাইব্রেরি ডি অ্যাডাফ্রুট (ডিসপোনিবল এন এল আইডিই) y টিনি 4 কেওএলইডি ডি ডেটাকিউট ক্যু ডেসকারগেরেমোস ডি গিতহব ইয়া কিউ, আল প্যারেসার, এল অটোর অরিজিনাল এস ডেটাকিউট ওয়াই, অ্যাডেমেস, নেসিসিটারেমোস মোডিফিকারলা আন পোকো লুগো।
El método de reinicio puede ser tanto un botón como dos placas metálicas que se tocan para encender el equipo। ব্যক্তিগতভাবে, তিনি encontrado la opción de las placas metálicas más interactivo।
ধাপ 2: সার্কিটোস
En la primer imagen se encuentra el circuito que requerimos para programmar el ATtiny85। Primeramente se debe programmar 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 programsmar el ATtiny85।
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।
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 programma al ATtiny।
Como se observa en las imágenes। এল পিন SDA del ATyiny es el 0 y el SCL/CLK es el 2. Nuestro DHT está conectado en el pin 4।
ধাপ 3: প্রোগ্রাম
Primeramente, debemos seleccionar "Arduino as ISP" como el programmador। Si aún no han instalado la placa para el ATtiny, reciendo instalar la placa ATtinyCore de Spence Konde। Esta placa no me generó ningún problemma de compilación durante la realización del proyecto।
La placa debe estar configurada sin BOD, con un reloj de 8MHz interno y sin OptiBoot। সি ইউটিলিজামোস 1MHz la comunicación por I2C no es estable y a 16MHz con cristal externo, además de perder dos pines digitales, el consuo energético aumenta considerablemente।
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
একটি ধারাবাহিক অজুন্তো এল স্কেচ নেসারেসিও প্যারা এল প্রজেক্টো।
#ইনক্লুড #ইনক্লুড #ইনক্লুড #ইনক্লুড #ডিফাইন আই_পিনব পিসিআইএনটি 3 #DHTTYPE DHT22 DHT dht (DHTPIN, DHTTYPE) নির্ধারণ করুন; const uint8_t প্রস্থ = 128; const uint8_t উচ্চতা = 64; volatile bool turn = false; / * * * ইন্টারাপ্ট হ্যান্ডলার * */ISR (PCINT_VECTOR) {// ইন্টারাপ্ট সবসময় ঘুম থেকে সেরে যায় যদি (ডিজিটাল রিড (I_PIN) == উচ্চ) {পরিণত = সত্য; // পুনরায় স্ক্রিনে পতাকা সেট করুন}} অকার্যকর সেটআপ () {cli (); // PCMSK এর বাধা বন্ধ করুন | = (1 << I_PINB); GIMSK | = (1 << PCIE); pinMode (I_PIN, INPUT); sei (); // বাধাগুলি চালু করুন adc_disable (); // কনভার্টার set_sleep_mode (SLEEP_MODE_PWR_DOWN) বন্ধ করে পাওয়ার সাশ্রয় করুন; // ঘুমের ধরনকে গভীর ঘুমের জন্য সেট করুন oled.begin (প্রস্থ, উচ্চতা, sizeof (tiny4koled_init_128x64br), tiny4koled_init_128x64br); // শুরু oled বস্তু oled.setFont (FONT8X16); // এই ফন্টটি অন্য একটি ড্রস্ক্রিন () এর চেয়ে ভাল দেখায়; oled.on (); বিলম্ব (2000); dht.begin (); পরিণত = সত্য; // পর্দা আঁকার জন্য পতাকা} অকার্যকর ঘুম () {sleep_enable (); sleep_cpu (); } অকার্যকর লুপ () {যদি (চালু) {cli (); // oled.on () এ বাধা বন্ধ করুন; float h = dht.readHumidity (); // dht ক্যাশে বিলম্ব (2200) পুনরায় সেট করার জন্য মিথ্যা পড়া; // h = dht.readHumidity () লোড করার জন্য dht অপেক্ষা করুন; 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 (); জন্য (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 (); জন্য (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 ("Sens:"); }
ধাপ 4: উপসংহার
A pesar de su tamaño insignificante, el ATtiny85 ofrece una amplia gama de aplicaciones en las que podemos বাস্তবায়ন este controlador de bajo costo sin perder funcionalidad। Personalmente no esperaba que fuera posible incluir el control de pantalla y de sleep juntos debido a las limitaciones de memoria। Dichozamente, el programma ha entrado en nuestro ATtiny।
লাস প্যান্টালাস ওএলইডি -র জন্য বিদ্যমান আছে। 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 y soluciones que son interesantes de explorar।
এল কনসোও ডেল ডিসপোসিটিভো এস মিউ বাজো। বিবেচনা করুন এবং ব্যবহার করুন El consuo podría reducirse aún más desconectando la pantalla y el sensor directamente desde un pin del ATtiny, pero no lo he considerado necesario।
Según Technoblogy.com el ATtiny puede operar en un consuo tan bajo como el mostrado en la primera imagen, pero en este proyecto he obtenido un consuo mayor que corresponde al de la segunda imagen। এল কনসোও দে লা বাটারিয়া কন্টিনা
ধাপ 5: লিঙ্ক Y লেকটুরাস 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
প্রস্তাবিত:
বড় এবং উন্নত ক্রিসমাস স্টার নিওপিক্সেল Attiny85: 3 ধাপ (ছবি সহ)
বড় এবং উন্নত ক্রিসমাস স্টার নিওপিক্সেল Attiny85: গত বছর আমি একটি ছোট 3D মুদ্রিত ক্রিসমাস স্টার তৈরি করেছি, দেখুন https://www.instructables.com/id/Christmas-Star-LE … এই বছর আমি একটি স্ট্র্যান্ড থেকে একটি বড় তারা তৈরি করেছি 50 Neopixels (5V WS2811) এর। এই বৃহত্তর নক্ষত্রের আরও নিদর্শন ছিল (আমি এখনও যোগ করছি এবং উন্নতি করছি
ATTiny85 ক্যাপাসিটর মিটার: 4 টি ধাপ
ATTiny85 ক্যাপাসিটর মিটার: এই নির্দেশনাটি ATTiny85 এর উপর ভিত্তি করে একটি ক্যাপাসিটর মিটারের জন্য যা নিম্নলিখিত বৈশিষ্ট্যগুলির উপর ভিত্তি করে। ATTiny85 (DigiStamp) SSD1306 0.96 " OLED DisplayFrequency পরিমাপ কম মূল্যের ক্যাপাসিটরের জন্য 1pF - 1uF 555 অসিলেটর ব্যবহার করে চার্জ টাইম মাপার
ATtiny85 পরিধানযোগ্য কম্পন কার্যকলাপ ট্র্যাকিং ওয়াচ এবং প্রোগ্রামিং ATtiny85 Arduino Uno এর সাথে: 4 টি ধাপ (ছবি সহ)
ATtiny85 Warable Vibrating Activity Tracking Watch & Programming ATtiny85 Arduino Uno দিয়ে: কিভাবে পরিধানযোগ্য কার্যকলাপ ট্র্যাকিং ঘড়ি তৈরি করবেন? এটি একটি পরিধানযোগ্য গ্যাজেট যা স্পন্দনের জন্য ডিজাইন করা হয়েছে যখন এটি স্থিরতা সনাক্ত করে। আপনি কি আমার মতো বেশিরভাগ সময় কম্পিউটারে কাটান? আপনি কি না বুঝে ঘন্টার পর ঘন্টা বসে আছেন? তারপর এই ডিভাইসটি f
ATtiny85 এবং OLED ডিসপ্লে SSD1306 এ Flappy Bird: 6 টি ধাপ (ছবি সহ)
ATtiny85 এবং OLED ডিসপ্লে SSD1306 এ Flappy Bird: হ্যালো সবাই, আজ আমি আপনাকে একটি মৌলিক ফ্ল্যাপি পাখি ক্লোন দেখাব যা আমি তৈরি করেছি, এবং আপনি কিভাবে একটি অনুরূপ গেম তৈরি করতে পারেন। আমি মূলত আপনার সাথে আমার কোডটি চালাব এবং ব্যাখ্যা করব কিভাবে এটি প্রতিটি ধাপে কাজ করে। এই গেমটি ধ্বংস করার জন্য তৈরি করা হয়েছে
বিজনেস কার্ড/গেম কনসোল: ATtiny85 এবং OLED স্ক্রিন: 5 টি ধাপ (ছবি সহ)
বিজনেস কার্ড/গেম কনসোল: ATtiny85 এবং OLED স্ক্রিন: হাই সবাই! আজ আমি আপনাকে দেখাতে যাচ্ছি কিভাবে আপনি আপনার নিজের বিজনেস কার্ড/গেম কনসোল তৈরি করতে পারেন/আপনি যা কল্পনা করতে পারেন তাতে ব্যাকলিট I2C OLED ডিসপ্লে এবং ATtiny85 মাইক্রোপ্রসেসর রয়েছে। এই নির্দেশনায় আমি আপনাকে বলব কিভাবে আমি একটি পিসিবি যেটা চাই