Proses manufaktur
| × | 1 | ||||
| × | 1 | ||||
| × | 3 | ||||
| × | 3 | ||||
| × | 2 | ||||
| × | 2 |
|
Saya membangun jam gaya analog kayu yang tampak bagus ini dengan Arduino Nano dan amperemeter 1mA. Saya mendapat ide dari sini. Untuk menampilkan detik, bagian dari kode telah ditambahkan. Juga ditambahkan adalah bagian yang, saat berlari, melewati seluruh skala dari nol hingga maks. nilai untuk tujuan kalibrasi. Tergantung pada ampermeter yang kita gunakan, nilai resistor 5k bisa berbeda. Karena semua meter sedikit berbeda, nilai PWM perlu disesuaikan berdasarkan desain Anda. Anda harus mengubah beberapa nilai karena disetel untuk bekerja secara khusus dengan pengukur saya.
/* Pengukur Panel Analog - Mode Jam SAJA Tautan yang Dapat Diinstruksikan:http://www.instructables.com/id/Analog-VU-meter-and-Clock-Arduino-Powered/ Kredit:bildr - DS1307 kode RTC http://bildr.org/2011/03/ds1307-arduino/ _________ Pengkabelan berjalan sebagai berikut:- Kabel merah USB (5v) ke VCC - Kabel hitam USB ke GND - Tombol - Kiri/Bawah ke Digital 2 (ikuti tutorial arduino:http ://arduino.cc/en/uploads/Tutorial/button.png ) - Kanan/Atas Digital 3 - DS1307 RTC - SDA ke Analog 4 - SCL ke Analog 5 - Meter Analog Kiri ke Digital 5 (PWM) - Analog Kanan Meter ke Digital 6 (PWM)_-Detik Pengukur analog ke Digital 9_(PWM)_________ Catatan:Karena semua meter sedikit berbeda, nilai PWM perlu disesuaikan berdasarkan desain Anda. Jangan ragu untuk menggunakan kode saya, tetapi Anda harus mengubah beberapa nilai karena sudah diatur untuk bekerja secara khusus dengan pengukur saya. */#include "Wire.h"#define DS1307_ADDRESS 0x68byte nol =0x00; //solusi untuk masalah #527int downButton =2; // tombol tekan ke bawah untuk mengatur waktu (pin 2)int upButton =3; // tombol tekan ke atas untuk mengatur waktu (pin 3)int jam =0;int menit =0;int detik =0;int lastMinute =0;int lastSecond =0;int leftMeter =5; // meter kiri (jam) terpasang ke pin 5int rightMeter =6; // meter kanan (min) terpasang ke pin 6int secMeter=9; //detik meter (detik) terpasang ke pin 9void setup(){ Wire.begin(); Serial.begin(9600); //melihat waktu di monitor serial pinMode(leftMeter, OUTPUT); // Inisialisasi Output &Input pinMode(rightMeter, OUTPUT); pinMode(secMeter, OUTPUT); digitalWrite(Meter kiri, TINGGI); // Uji meter saat startup digitalWrite(rightMeter, HIGH); digitalWrite(detikMeter, TINGGI); digitalWrite(13, TINGGI); penundaan (1000); digitalWrite(Meter kiri, RENDAH); digitalWrite(rightMeter, RENDAH); digitalWrite(secMeter, RENDAH); digitalWrite(13, RENDAH); delay(1000);}void loop(){ printDate(); penundaan (75); // Mengubah waktu dengan tombol if (digitalRead(downButton) ==HIGH){ byte detik =detik; // Jangan bingung:detik tidak sama dengan detik byte menit =menit; // Jangan bingung:menit tidak sama dengan menit byte jam =jam; // Jangan bingung:hour tidak sama dengan hoursif (minutes> 0){ --minute; }lain{ menit =59; if (jam> 0){ -- jam; }else{ jam =23;}} Wire.beginTransmission(DS1307_ADDRESS); Kawat.tulis(nol); //hentikan Kawat Oscillator.tulis(decToBcd(kedua)); Wire.write(decToBcd(menit)); Wire.write(decToBcd(jam)); Kawat.tulis(nol); //mulai Wire.endTransmission();} if (digitalRead(upButton) ==HIGH){ byte second =0; byte menit =menit; // Jangan bingung:menit tidak sama dengan menit byte jam =jam; // Jangan bingung:hour tidak sama dengan hoursif (minutes <59){ ++minute; }lain{ menit =0; if (jam <23){ ++ jam; }else{ jam =0;}} Wire.beginTransmission(DS1307_ADDRESS); Kawat.tulis(nol); //hentikan Kawat Oscillator.tulis(decToBcd(kedua)); Wire.write(decToBcd(menit)); Wire.write(decToBcd(jam)); Kawat.tulis(nol); //start Wire.endTransmission();} }byte decToBcd(byte val){// Mengonversi angka desimal normal menjadi pengembalian desimal berkode biner ( (val/10*16) + (val%10) );}byte bcdToDec(byte val) {// Konversi desimal berkode biner ke angka desimal normal return ( (val/16*10) + (val%16) );}void printDate(){ // Reset pointer register Wire.beginTransmission(DS1307_ADDRESS); Kawat.tulis(nol); Kawat.endTransmisi(); Wire.requestFrom(DS1307_ADDRESS, 7); detik =bcdToDec(Wire.read()); menit =bcdToDec(Wire.read()); jam =bcdToDec(Wire.read() &0b111111); //waktu 24 jam //cetak tanggal Serial.print(jam); // Batalkan komentar untuk melihat waktu di monitor serial Serial.print(":"); // Serial.println(menit); // Jangan lupa untuk menghapus komentar 'Serial.begin' di 'void setup' di atas // Level meter tertentu untuk setiap jam // Anda mungkin harus menyesuaikan nilai ini.// Bermain-main dengan nilai sampai Anda mendapatkan apa maumu. if (menit terakhir !=menit){ if (jam ==1 || jam ==13){ analogWrite(leftMeter, 0); // sesuaikan level meter kiri (jam) } if (jam ==2 || jam ==14){ analogWrite(leftMeter, 29); // sesuaikan level meter kiri (jam) } if (jam ==3 || jam ==15){ analogWrite(leftMeter, 52); // sesuaikan level meter kiri (jam) } if (jam ==4 || jam ==16){ analogWrite(leftMeter, 75); // sesuaikan level meter kiri (jam) } if (jam ==5 || jam ==17){ analogWrite(leftMeter, 98); // sesuaikan level meter kiri (jam) } if (jam ==6 || jam ==18){ analogWrite(leftMeter, 130); // sesuaikan level meter kiri (jam) } if (jam ==7 || jam ==19){ analogWrite(leftMeter, 152); // sesuaikan level meter kiri (jam) } if (jam ==8 || jam ==20){ analogWrite(leftMeter, 172); // sesuaikan level meter kiri (jam) } if (jam ==9 || jam ==21){ analogWrite(leftMeter, 192); // sesuaikan level meter kiri (jam) } if (jam ==10 || jam ==22){ analogWrite(leftMeter, 213); // sesuaikan level meter kiri (jam) } if (jam ==11 || jam ==23){ analogWrite(leftMeter, 234); // sesuaikan level meter kiri (jam) } if (jam ==0 || jam ==12){ analogWrite(leftMeter, 255); // sesuaikan level meter kiri (jam) } if (menit * 4,75 <255){ // tingkatkan nilai PWM sebesar 4,75 setiap menit analogWrite(rightMeter, menit * 4,75); // Saya harus menggunakan 4.75 pada meteran saya untuk mendapatkan 30 menit untuk menunjuk tepat lurus ke atas }else{ // sempurna akan menjadi 4.25 karena 4.25 * 60 =255 analogWrite(rightMeter, 255); } menit terakhir =menit; if (detik * 4.25 <255){ analogWrite(detikMeter, detik *4.25); }else{ analogWrite(secMeter, 255); } detik terakhir =detik; }}
Proses manufaktur
Komponen dan persediaan Arduino Nano R3 Sebaiknya gunakan Arduino Nano jika Anda ingin menggunakan housing yang ringkas × 1 Jam Waktu Nyata Adafruit × 1 Servo Rotasi Berkelanjutan × 1 Dispenser sereal × 1 Sensor hall UNIPOLAR × 1 Magnet Batang dis
Komponen dan persediaan Arduino Nano R3 × 1 matriks LED × 1 Resistor foto × 1 Breadboard (generik) × 1 DS3231 × 1 Aplikasi dan layanan online Arduino IDE Tentang proyek ini Membaca tampilan jam di sebuah ruangan pa
Selamat datang di Tutorial Arduino ketiga dari Seri Tutorial Arduino kami. Dalam tutorial ini kita akan mempelajari cara kerja pin Input Analog Arduino dan membuat beberapa contoh menggunakan potensiometer dan fotosel. Ini adalah Video Tutorial Langkah demi Langkah yang mudah diikuti. Selain itu, d
Arduino Nano adalah salah satu versi tertua dari papan perangkat lunak Arduino. Meskipun tidak memiliki colokan listrik, ini paling cocok untuk aplikasi papan tempat memotong roti mini terutama karena faktor bentuknya yang kecil. Ini juga hemat konsumsi daya. Tutorial Arduino Nano kami akan memberik