Rangkaian Smart Lamp
PCB Smart Lamp
Berikut ini adalah Program untuk Smart Lamp versi 1.4
/*Program untuk Smart Lamp V1.4 dengan IC Atmega8 SMD
* Kendali Melalui Tombol Dan Serial (Bluetooth)
* mengendalikan nyala on Off serta Tingkat kecerahan
* daftar perintah seria
* A = ON Semua
* a = Off semua
* B = Increase PwmA
* b = Decrease PwmA
* C = Increase PwmB
* c Decrease PwmB
* D = Kedip
* d = Release Kedip
* Program di buat Oleh : Wahyu Arief Budiman
* Hp : 085643496555
* Blog : Hobbykendaraanlistrik.blogspot.com
* email : arief@smkn1seyegan.com
*/
#define ON 1
#define OFF 0
const int LampB = 9;
const int LampA = 10;
const int Up = 2;
const int Down = 3;
const int Menu = 4;
const int D5 = 5;
const int D6 = 6;
int PwmA;
int PwmB;
int TombolUp = 0;
int TombolDown = 0;
int TombolMenu = 0;
int Kedip = 0;
char HC06;
void setup() {
Serial.begin(9600);
Serial.println(F("Smart Lamp1.4"));
pinMode(LampA, OUTPUT); digitalWrite(LampA, OFF);
pinMode(LampB, OUTPUT); digitalWrite(LampB, OFF);
pinMode(Up, INPUT);
pinMode(Down, INPUT);
pinMode(Menu, INPUT);
digitalWrite(LampA, OFF);delay(300);digitalWrite(LampA, ON);delay(300);digitalWrite(LampA, OFF);delay(900);
digitalWrite(LampB, OFF);delay(300);digitalWrite(LampB, ON);delay(300);digitalWrite(LampB, OFF);delay(900);
PwmA = 100;
PwmB = 100;
analogWrite(LampA,PwmA);
analogWrite(LampB, PwmB);
Kedip = 0;
}
void loop() {
// put your main code here, to run repeatedly:
BacaBluetooth();
BacaTombol();
Lampu();
}
void BacaBluetooth(){
if(Serial.available()>0)
{
HC06 = Serial.read();
if (HC06 =='A'){digitalWrite(LampA,ON);
digitalWrite(LampB,ON);
PwmA = 255; PwmB = 255;Kedip = 0;
Serial.println("ON Semua");}
if (HC06 =='a'){digitalWrite(LampA,OFF);
digitalWrite(LampB,OFF);
PwmA = 0; PwmB = 0;Kedip = 0;
Serial.println("Mati Semua");}
if (HC06 =='B'){
PwmA+=10; if (PwmA>=256){PwmA=255;}
Serial.println(PwmA);}
if (HC06 =='b'){
PwmA-=10; if (PwmA<=0){PwmA=0;}
Serial.println(PwmA);}
if (HC06 =='C'){
PwmB+=10; if (PwmB>=256){PwmB=255;}
Serial.println(PwmB);}
if (HC06 =='b'){
PwmB-=10; if (PwmB<=0){PwmB=0;}
Serial.println(PwmB);}
if (HC06 =='D'){
Kedip = 300;
Serial.println("Berkedip");}
if (HC06 =='d'){
Kedip = 0;
Serial.println("Tidak Kedip");}
}
}
void BacaTombol(){
TombolUp = digitalRead(Up);
TombolDown = digitalRead(Down);
TombolMenu = digitalRead(Menu);
if(TombolUp == LOW){PwmA++;PwmB++;
if (PwmA>=256){PwmA=255;};
if (PwmB>=256){PwmB=255;};
delay(50);}
if(TombolDown == LOW){PwmA--;PwmB--;
if (PwmA<=0){PwmA=0;};
if (PwmB<=0){PwmB=0;};
delay(50);}
if(TombolMenu == LOW){Kedip = 300;}
if(TombolMenu == LOW && TombolDown == LOW){Kedip = 0;}
}
void Lampu(){
analogWrite(LampA,PwmA);
analogWrite(LampB, PwmB);
delay(Kedip);
analogWrite(LampA,0);
analogWrite(LampB, 0);
delay(Kedip);
}