Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Analog, Jam Digital, dan Termometer pada LCD 128x64

Komponen dan persediaan

Arduino Nano R3
× 1
Maxim Integrated DS3231M - ±5ppm, I2C Real-Time Clock
× 1
Potensiometer Putaran Tunggal- 10k ohm
× 1
Sakelar Tombol Tekan, Sesaat
× 1
Tampilan grafis LCD 128x64
× 1

Alat dan mesin yang diperlukan

Besi solder (generik)

Tentang proyek ini

Pada halaman web arduinoecia disajikan jam Arduino dengan tampilan grafis LCD 128x64, potensiometer untuk mengatur kontras tampilan, modul DS3231 RTC dan tombol tekan. Modul RTC terhubung ke Arduino pada pin A4 (SDA) dan A5 (SCL). Tombol terhubung ke pin 3 digital, dengan resistor pull-up internal Arduino diaktifkan melalui perangkat lunak. Program ini menggunakan beberapa perpustakaan yang harus Anda instal sebelum kompilasi. Buka zip perpustakaan dan letakkan di dalam folder PERPUSTAKAAN pada Arduino IDE.

Program memiliki dua layar:yang pertama ( screen_1 ), menampilkan jam analog, jam digital, serta tanggal dan suhu saat ini.

Layar kedua ( screen_2 ) menunjukkan jam digital, hari dalam seminggu, tanggal dan informasi suhu saat ini, suhu minimum dan suhu maksimum. Layar dipilih dengan menekan tombol tekan, terhubung ke pin digital 3.

Untuk mengatur tanggal dan waktu modul RTC DS3231, gunakan monitor serial dan masukkan informasi dalam format tahun, bulan, hari, jam, menit, detik.

Jika Anda mengetik informasi dengan benar, pesan " " akan ditampilkan.

Kode

  • kode
  • perpustakaan
kodeArduino
//Programa:Display LCD 128x64 e RTC DS3231//Autor:Arduino e Cia#include #include #include #include #include //A linha abaixo didefinisikan sebagai kerucut yang ditampilkan dan dikembangkan //ajustada kesesuaian model utilizadoU8GLIB_ST7920_128X64_1X u8g(6, 5, 4 , 7); //Aktifkan, RW, RS, RESETint X2 =0;int Y2 =0;int X3 =0;int Y3 =0;float angulo =0;int posicao =0;int posicaoh =0;int temperatur =0;int min_temp =500;int max_temp =-500;int ScreenWith =128;int ScreenWithC =96;int ScreenHeight =64;int ScreenHeightC =32;#define botao 3int estado_botao =0;char* dia_da_semana[]={ "Sun", "Sen ", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"};void tela_1() { u8g.drawRFrame(0, 0, 128, 64, 3); //Suhu paling banyak u8g.setPrintPos(20, 30); u8g.print(suhu); u8g.drawStr( 42, 30, "C"); u8g.drawCircle(37, 34, 2); mostra_relogio_digital(); //Mostra relogio analogico fundo_relogio(); //Atualiza Ponteiro de horas desenha_ponteiro(jam()-1, 12.0, 10); //Atualiza Ponteiro de minutos desenha_ponteiro(menit()-5, 60.0, 19); //Atualiza Ponteiro de segundos desenha_ponteiro(kedua()-5, 60, 21);}kosongkan tela_2(){ u8g.drawRFrame(0, 0, 128, 64, 3); u8g.drawRFrame(68, 4, 55, 56, 2); mostra_relogio_digital(); u8g.setFont(u8g_font_5x8); u8g.drawStr( 78, 35, "MIN"); u8g.drawStr( 78, 53, "MAX"); u8g.setFont(u8g_font_6x13); u8g.setPrintPos(25, 41); u8g.print(dia_da_semana[(hari kerja()-1)]); //Suhu paling tinggi sebenarnya u8g.setPrintPos(83, 19); u8g.print(suhu); u8g.drawStr( 105, 19, "C"); u8g.drawCircle(100, 12, 2); //Suhu paling minima u8g.setPrintPos(98, 36); u8g.print(min_temp); u8g.drawCircle(113, 29, 2); //Mostra temperaturea maxima u8g.setPrintPos(98, 54); u8g.print(max_temp); u8g.drawCircle(113, 47, 2);}void desenha_ponteiro(float valor, float rotacao, int Radius) { angulo =valor * 2.0 * 3.1415 / rotacao - 1.5707; X2 =LayarDenganC + Radius * cos(angulo); Y2 =Tinggi LayarC + Radius * sin(angulo); u8g.drawLine(ScreenWithC, ScreenHeightC, X2, Y2);}void fundo_relogio() { u8g.drawCircle(ScreenWithC, ScreenHeightC, 27); u8g.drawCircle(ScreenWithC, ScreenHeightC, 1); u8g.setFont(u8g_font_6x13); u8g.setFontPosTop(); u8g.drawStr(90, 9, "12"); u8g.drawStr(114, 25, "3"); u8g.drawStr(94, 44, "6"); u8g.drawStr(74, 25, "9"); for(int traco_minuto =0; traco_minuto<12; traco_minuto++) { //Desenha linhas relogio analogico angulo =traco_minuto / 12.0 * 2 * 3.1415; X2 =LayarDenganC + 25 * cos(angulo); Y2 =Tinggi LayarC + 25 * sin(angulo); X3 =LayarDenganC + 25 * cos(angulo); Y3 =Tinggi LayarC + 25 * sin(angulo); u8g.drawLine(X2, Y2, X3, Y3); }}void mostra_relogio_digital(){ //Mostra a data u8g.setFont(u8g_font_5x8); u8g.setPrintPos(8, 55); u8g.print(hari()); u8g.drawStr( 19, 55, "/"); u8g.setPrintPos(24, 55); u8g.print(bulan()); u8g.drawStr( 35, 55, "/"); u8g.setPrintPos(41, 55); u8g.print(tahun()); //Mostra hora e minutos u8g.drawRBox(3, 4, 62, 21,2); u8g.setColorIndex(0); u8g.setFont(u8g_font_fub17); u8g.drawStr(29,21,":"); //Acerta a posicao do digito caso a hora //seja menor do que 10 if (hour() <10) { u8g.drawStr(3,23,"0"); posicaoh =16; } lain posicaoh =3; u8g.setPrintPos(posicaoh, 23); u8g.print(jam()); //Acerta a posicao do digito caso o minuto //seja menor do que 10 if (minute() <10) { u8g.drawStr(38,23,"0"); posicao =51; } lain posicao =38; u8g.setPrintPos(posicao ,23); u8g.print(menit()); u8g.setColorIndex(1);}pengaturan batal() { pinMode(3, INPUT_PULLUP); Serial.begin(9600); if ( u8g.getMode() ==U8G_MODE_R3G3B2 ) u8g.setColorIndex(255); // putih lain if ( u8g.getMode() ==U8G_MODE_GRAY2BIT ) u8g.setColorIndex(3); // intensitas maksimal else if ( u8g.getMode() ==U8G_MODE_BW ) u8g.setColorIndex(1); // piksel pada setSyncProvider(RTC.get); Serial <=max_temp) { max_temp =suhu; } if (suhu <=min_temp) { min_temp =suhu; } static time_t tLast; waktu_tt; tmElements_t tm; //Verifikasi se foi setado um novo horario //Format:ano, mes, dia, hora, minuto, segundo if (Serial.available()>=12) { int y =Serial.parseInt(); if (y>=100 &&y <1000) Serial<=1000) tm.Tahun =KalenderYrToTm(y); else //(y <100) tm.Tahun =y2kTahunToTm(y); tm.Bulan =Serial.parseInt(); tm.Hari =Serial.parseInt(); tm.Jam =Serial.parseInt(); tm.Minute =Serial.parseInt(); tm.Second =Serial.parseInt(); t =waktu make(tm); RTC.set(t); setWaktu(t); Serial < 0) Serial.read(); } } t =sekarang(); if (t !=tTerakhir) { tTerakhir =t; printDateTime(t); Seri< 0) Serial < 
perpustakaanArduino
Tidak ada pratinjau (hanya unduhan).

Skema


Proses manufaktur

  1. Sinyal Analog dan Digital
  2. Jenis Sensor Analog dan Digital dengan Aplikasi
  3. Arduino pov vision clock
  4. Jam Master
  5. Animasi dan Permainan LCD
  6. Suhu Arduino. Monitor Dan Jam Waktu Nyata Dengan Tampilan 3.2
  7. TM1637 Jam Digital dengan pengaturan waktu dan fungsi alarm
  8. Voltmeter DIY dengan Arduino dan Tampilan Nokia 5110
  9. Suhu, Kelembaban, dan Tekanan BME280 pada Tampilan Berikutnya
  10. Jam Alarm Sederhana dengan DS1302 RTC