فهرست مطالب:
- تدارکات
- مرحله 1: توصیف Del Funcionamiento
- مرحله 2: مدارها
- مرحله 3: برنامه نویسی
- مرحله 4: نتیجه گیری
- مرحله 5: پیوندهای Y Lecturas Relacionados
تصویری: Attiny85 Termómetro OLED: 5 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:53
Este proyecto شامل یک term termometric pequeño y simple que muestra la temperatura actual، la humedad relativa y el índice de temperatura است. Puede realizarse con un ATmega328p ، اما علاقه مند به استفاده از ATINy85 cauto tamaño y batería convergen en un dispositivo pequeño y portátil است.
تداوم توصیف el funcionamiento، seguido mostraré el circuito y finalizaré con el programa y algunos comentarios sobre el proyecto en general.
تدارکات
1 x ATtiny85
1 x Arduino UNO/PRO/etc (programador del ATtiny)
1 x 128x64 pantalla I2C OLED
1 x سنسور دمای DHT22
1 برابر Resistencia 4.7MOhm (1/4W)
1 x خازن electrolítico 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 konsumo para extensioner لا باتریا
Nuestro programa se guiará por el siguiente processo: 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) y Tiny4kOLED data datacute que descargaremos de Github ya que، al parecer، el autor original es dataacute y، 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: مدارها
En 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. در صورت استفاده از آن می توانید از سیستم استفاده کنید و از آن استفاده کنید و به دنبال آن 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 lehtar 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: برنامه نویسی
در ابتدا ، انتخاب کننده "Arduino as ISP" como el programador. Si aún no han instalado la placa para el ATtiny ، توصیه به نصب و راه اندازی ATtinyCore de Spence Konde. Esta placa no me generó ningún problema de compilación durante la realización del proyecto.
La placa debe estar configurada sin BOD ، با استفاده از 8MHz interno y sin OptiBoot را باز کنید. برای استفاده از 1 مگاهرتز در ارتباط با I2C هیچ ثبات و 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 for 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
در ادامه به دنبال طرح اولیه مورد نیاز برای proyecto هستم.
#Include #include #include #include #define 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؛ بول فرار تبدیل = false؛ / * * * کنترل کننده وقفه * */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. 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") ؛ // نماد on در کتابخانه تغییر کرد تا شبیه تاخیر نماد درجه (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 implementar este controlador de bajo costo sin perder funcionalidad. Personalmente no esperaba que fuera genitive incluir el control de pantalla y de sleep disnto a las limitaciones de memoria. Dichozamente، el programa ha entrado en nuestro ATtiny
otras librerías para las pantallas OLED وجود دارد. Librería GFX de Adafruit no me lejió compilar for lo que decidí buscar algo precisamente para el ATtiny، pero existen otras librerías y soluciones que son interesantes de explorerar
El konsumo del dispositivo es muy bajo. با در نظر گرفتن شرایط ثابت ، شما می توانید این مقدار را برای 3000 میلی آمپر ساعت (NiMH یا LiIon) در 500 واحد تخمین بزنید. El konsumo podría aducn más desconectando la pantalla y el sensor directamente desde un pin del ATtiny ، اما هیچ او را در نظر نمی گیرم
Según Technoblogy.com el ATtiny puede operar en un konsumo tan bajo como el mostrado en la primera imagen، اما به این ترتیب به عنوان یک شهردار مصرف کننده و مکاتبه کننده با تصویر دیگری در نظر گرفته شده است. El konsumo 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/fa/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: سال گذشته من یک ستاره کریسمس چاپ سه بعدی کوچک ایجاد کردم ، به https://www.instructables.com/id/Christmas-Star-LE مراجعه کنید. امسال من یک ستاره بزرگتر از یک رشته ساختم از 50 نئوپیکسل (5 ولت WS2811). این ستاره بزرگتر الگوهای بیشتری داشت (من هنوز در حال اضافه کردن و بهبود
کاهش مصرف باتری برای Digispark ATtiny85: 7 مرحله
کاهش مصرف باتری برای Digispark ATtiny85: یا: اجرای آردوینو با سلول سکه 2032 به مدت 2 سال. با استفاده از برد Digispark Arduino خود در جعبه با برنامه آردوینو ، 20 میلی آمپر در 5 ولت می گیرد. با یک پاوربانک 5 ولت 2000 میلی آمپر ساعت تنها 4 روز کار می کند
ساعت و برنامه نویسی فعالیتهای ارتعاشی پوشیدنی ATtiny85 ATtiny85 با Arduino Uno: 4 مرحله (همراه با تصاویر)
سازمان دیده بان و برنامه نویسی فعالیتهای ارتعاشی پوشیدنی ATtiny85 ATtiny85 با Arduino Uno: چگونه ساعت ردیابی فعالیت های پوشیدنی را بسازیم؟ این یک ابزار پوشیدنی است که هنگام تشخیص رکود برای ارتعاش طراحی شده است. آیا بیشتر وقت خود را مثل من در کامپیوتر می گذرانید؟ آیا ساعت ها بدون این که بدانید نشسته اید؟ سپس این دستگاه f
Flappy Bird در ATtiny85 و OLED Display SSD1306: 6 مرحله (همراه با تصاویر)
Flappy Bird در ATtiny85 و OLED Display SSD1306: سلام به همه ، امروز من قصد دارم یک کلون پرنده اولیه flappy را که ایجاد کرده ام و نحوه ساخت بازی مشابه را به شما نشان دهم. من اساساً کد خود را با شما مرور می کنم و نحوه عملکرد آن را در هر مرحله توضیح می دهم. این بازی برای ru طراحی شده است
کارت ویزیت/کنسول بازی: ATtiny85 و صفحه OLED: 5 مرحله (همراه با تصاویر)
کارت ویزیت/کنسول بازی: ATtiny85 و صفحه OLED: سلام به همه! امروز من قصد دارم به شما نشان دهم که چگونه می توانید کارت ویزیت/کنسول بازی خود را بسازید/هر چیزی را که می توانید تصور کنید که دارای صفحه نمایش ILEC OLED با نور پس زمینه و ریزپردازنده ATtiny85 است. در این دستورالعمل به شما می گویم چگونه یک PCB که من طراحی کردم