Kamis, 26 April 2018

Program Smart Lamp

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); 
  }