Isi kandungan:
Berikut adalah salah satu projek kecil saya yang pertama saya lakukan dengan Arduino Uno saya.
Ia hanya pencari cahaya yang sedikit. Servo berubah menjadi cahaya.
Saya membuat video untuk menunjukkan kepada anda apa yang dilakukannya:
Bekalan:
Langkah 1: Pendawaian
Inilah pendawaian yang tepat yang saya gunakan.
Satu-satunya perbezaan adalah bahawa saya menetapkan photoresistors pada servo (tetapi saya tidak dapat melakukannya dengan program ini)
Juga saya menggunakan bateri 9V dalam video, ia dipasang di Vin dan GND.
Resistor adalah 200 Ohm untuk LED dan 10 KOhm untuk photoresistor.
Langkah 2: Kod
Ini adalah kod pertama saya. Saya cuba menterjemahkan ulasan dalam bahasa inggeris.
Arduino mengira perbezaan antara fotoresistor kiri dan kanan dan mengubah servo jika perbezaannya lebih besar daripada 30.
Apabila servo beralih arah mengikut arah jam, LED yang betul menyala. Apabila ia bertukar melawan arah jam, lampu LED kiri menyala
Sekiranya anda melihat apa-apa kesilapan atau perkara yang pelik, sila beritahu saya:)
#include
Servo servo; // tentukan servo
// Pemboleh ubah
int photoD = 0; // tentukan pin 0 untuk photoresistor yang betul
int photoG = 1; // tentukan pin 1 untuk photoresistor kiri
int ledD = 3; // tetapkan pin 3 untuk LED yang betul
int ledG = 5; // tentukan pin 5 untuk LED kiri
int incr = 5; // nilai untuk ditambahkan pada sudut
int valS; // sudut
tempias panjang; //Masa
temps2 panjang; // Masa 2
temps3 panjang; // Masa 3
temps4 panjang; // Masa 4
//----------------------------------------------------------------------------
/ / Persediaan
batal persediaan ()
{
pinMode (3, OUTPUT); // tentukan pin output 3
pinMode (5, OUTPUT); / / menentukan keluaran pint 5
servo.attach (8); // servo pada pin 8
Serial.begin (9600); // Memulakan communcation siri
temps = millis ();
servo.write (75); / / Kedudukan awal servo
}
//----------------------------------------------------------------------------
/ / Loop
kekosongan gelung ()
{
int valG; / // nilai photoG
int valD; / // nilai photoD
valD = analogRead (photoD);
valG = analogRead (photoG);
// Menampilkan nilai pada monitor setiap saat
jika (temps + 1000 <millis ()) {
Serial.print ("nilai photoresistor yang betul:");
Serial.println (valD);
Serial.print ("nilai photoresistor kiri:");
Serial.println (valG);
Serial.print ("Angle:");
Serial.println (valS);
Serial.println ("----------------------");
temps = millis ();
}
jika (temps3 + 1000 <millis () && (valD - valG> 20) && (valS <180)) {
Serial.println ("Menghidupkan lawan arah jam");
temps3 = millis ();
}
jika (temps4 + 1000 <millis () && (valG - valD> 20) && (valS> 0)) {
Serial.println ("Menghidupkan arah jam");
temps4 = millis ();
}
jika (valD - valG> 30) {
valS = valS + incr;
digitalWrite (ledG, TINGGI);
}
jika (valG - valD> 30) {
valS = valS - incr;
digitalWrite (ledD, HIGH);
}
jika (valS> 0 || valS <180) {
servo.write (valS); // pulangkan servo
}
jika (valS <= 0) {
valS = 0;
}
jika (valS> = 180) {
valS = 180;
}
jika (temps2 + 500 <millis () && valD - valG <30 && valG - valD <30) {
digitalWrite (ledD, LOW);
digitalWrite (ledG, LOW);
temps2 = millis ();
}
kelewatan (30);
}
Langkah 3: Akhirnya
Dan itu sahaja !
Saya harap anda menikmati projek ini!
Jika anda mempunyai sebarang pertanyaan, jangan ragu untuk bertanya.