Post Top Ad

Post Top Ad

Sensor warna dengan output suara berbasis Arduino Uno

Sebenarnya judul Sensor warna dengan output suara berbasis Arduino Uno dapat di ubah menjadi Sensor warna dengan output suara berbasis Mikrokontroler AVR, baik at mega 16, 8 ataupun at mega varian lain, bahkan at tiny pun dapat di gunakan sebagai otak pengolah informasi yang diberikan oleh sensor warna untuk kemudian menghasilkan output suara


sensor warna nya memiliki skematik sebagai berikut :



Modul Hardware yang dipergunakan dalam tulisan ini adalah :


1. modul Arduino UNO, boleh versi aseli italy ataupun versi abal abal china (arduino uno rev clone),
2. modul serial ttl to play wave (hehehehe membingungkan?) cara kerjanya kirim perintah serial ke mdul tersebut , selanjutnya file wav yang ada di MMC yang terkoneksi pada modul akan di play oleh modul
3. penguat suara (modul mini amplifier)
4. speaker
5. power supplya
6. rangkaian sensor warna, 

gambar alat  Sensor warna dengan output suara berbasis Arduino Uno




source kode untuk  Sensor warna dengan output suara berbasis Arduino Uno adalah sebagai berikut :

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX

const int analogInRed = A0; 
const int analogInGreen = A1; 
const int analogInBlue = A2; 
int sensorValueRed = 0;    
int sensorValueGreen = 0;    
int sensorValueBlue = 0;    

int k=15;

const int buttonPin = 3;     // the number of the pushbutton pin
const int buzzerPin = 2;      // the number of the buzzer pin
int buttonState = 0;

void setup() {
mySerial.begin(19200); 
mySerial.write(13);
mySerial.write(13);
mySerial.write(13);

delay(100);
//kirim stop
mySerial.print ("g") ;
//mySerial.print Chr(13) ;
mySerial.write(13);


//'seting single step
mySerial.print ("t") ;
//mySerial.print Chr(13) ;
mySerial.write(13);
 
   pinMode(buzzerPin, OUTPUT);     
   pinMode(buttonPin, INPUT);
  
  digitalWrite(buzzerPin,LOW);
  delay(500);

  digitalWrite(buzzerPin,HIGH);
  delay(500);
  
  digitalWrite(buzzerPin,LOW);
  delay(500);

  digitalWrite(buzzerPin,HIGH);
  delay(500);
 
  digitalWrite(buzzerPin,LOW);
  delay(500);

  digitalWrite(buzzerPin,HIGH);
  delay(500);
 
  digitalWrite(buzzerPin,LOW);
  delay(500);

  digitalWrite(buttonPin,HIGH);
  delay(500);
 
 
  Serial.begin(19200);
}

void loop() {
  // read the analog in value:
 buttonState = digitalRead(buttonPin); 
if (buttonState==LOW) {
 
 sensorValueRed = analogRead(analogInRed);
  sensorValueGreen = analogRead(analogInGreen);
  sensorValueBlue = analogRead(analogInBlue);

  digitalWrite(buzzerPin,HIGH);
  delay(500);
 
  digitalWrite(buzzerPin,LOW);
  delay(500);
 
   digitalWrite(buzzerPin,HIGH);
  delay(500);
 
  digitalWrite(buzzerPin,LOW);
  delay(500);
 
 
if(abs(sensorValueRed-606)<k && abs(sensorValueGreen-172)<k && abs(sensorValueBlue-428)<k){
    Serial.println("HITAM");
 mySerial.print ("lxhitam") ;
//mySerial.print Chr(13) ;
mySerial.write(13);
   } else


if(abs(sensorValueRed-239)<k && abs(sensorValueGreen-57)<k && abs(sensorValueBlue-154)<k){
    Serial.println("PUTIH");
   mySerial.print ("lxputih") ;
//mySerial.print Chr(13) ;
mySerial.write(13);
} else
   

if(abs(sensorValueRed-338)<k && abs(sensorValueGreen-135)<k && abs(sensorValueBlue-342)<k){
    Serial.println("MERAH");
 mySerial.print ("lxmerah") ;
//mySerial.print Chr(13) ;
mySerial.write(13);
}  else
   

if(abs(sensorValueRed-455)<k && abs(sensorValueGreen-86)<k && abs(sensorValueBlue-273)<k){
    Serial.println("HIJAU");
 mySerial.print ("lxhijau") ;
//mySerial.print Chr(13) ;
mySerial.write(13);
}   else
   
if(abs(sensorValueRed-488)<k && abs(sensorValueGreen-97)<k && abs(sensorValueBlue-226)<k){
    Serial.println("BIRU");
 mySerial.print ("lxbiru") ;
//mySerial.print Chr(13) ;
mySerial.write(13);
}  else
   
if(abs(sensorValueRed-255)<k && abs(sensorValueGreen-67)<k && abs(sensorValueBlue-222)<k){
    Serial.println("KUNING");
  mySerial.print ("lxkuning") ;
//mySerial.print Chr(13) ;
mySerial.write(13);
}  else
   
if(abs(sensorValueRed-392)<k && abs(sensorValueGreen-77)<k && abs(sensorValueBlue-249)<k){
    Serial.println("HIJAU MUDA");
  mySerial.print ("lxhijau1") ;
//mySerial.print Chr(13) ;
mySerial.write(13);
}   else
   
if(abs(sensorValueRed-489)<k && abs(sensorValueGreen-101)<k && abs(sensorValueBlue-311)<k){
    Serial.println("HIJAU TUA");
  mySerial.print ("lxhijau2") ;
//mySerial.print Chr(13) ;
mySerial.write(13);
}   else     

if(abs(sensorValueRed-403)<k && abs(sensorValueGreen-78)<k && abs(sensorValueBlue-198)<k){
    Serial.println("BIRU MUDA");
 mySerial.print ("lxbiru1") ;
//mySerial.print Chr(13) ;
mySerial.write(13);
}   else         

if(abs(sensorValueRed-506)<k && abs(sensorValueGreen-104)<k && abs(sensorValueBlue-234)<k){
    Serial.println("BIRU TUA");
 mySerial.print ("lxbiru2") ;
//mySerial.print Chr(13) ;
mySerial.write(13);
}   else   


if(abs(sensorValueRed-462)<k && abs(sensorValueGreen-150)<k && abs(sensorValueBlue-372)<k){
    Serial.println("COKLAT");
    mySerial.print ("lxcoklat") ;
//mySerial.print Chr(13) ;
mySerial.write(13);
}else         

if(abs(sensorValueRed-302)<k && abs(sensorValueGreen-122)<k && abs(sensorValueBlue-346)<k){
    Serial.println("ORANYE");
  mySerial.print ("lxoranye") ;
//mySerial.print Chr(13) ;
mySerial.write(13);
}  else     


if(abs(sensorValueRed-402)<k && abs(sensorValueGreen-93)<k && abs(sensorValueBlue-221)<k){
    Serial.println("ABU ABU");
 mySerial.print ("lxabu") ;
//mySerial.print Chr(13) ;
mySerial.write(13);
} else     

if(abs(sensorValueRed-562)<k && abs(sensorValueGreen-145)<k && abs(sensorValueBlue-304)<k){
    Serial.println("UNGU");
 mySerial.print ("lxungu") ;
//mySerial.print Chr(13) ;
mySerial.write(13);
} else
if(abs(sensorValueRed-287)<k && abs(sensorValueGreen-87)<k && abs(sensorValueBlue-289)<k){
    Serial.println("KUNING TUA");
 mySerial.print ("lxkuning2") ;
//mySerial.print Chr(13) ;
mySerial.write(13);
}     else

if(abs(sensorValueRed-426)<k && abs(sensorValueGreen-134)<k && abs(sensorValueBlue-291)<k){
    Serial.println("PINK");
  mySerial.print ("lxpink") ;
//mySerial.print Chr(13) ;
mySerial.write(13);}           
  Serial.println(sensorValueRed);                      
  Serial.println(sensorValueGreen);                 
  Serial.println(sensorValueBlue); 
 Serial.println("=====================");
  delay(1000);  

}


panjang ya ?  ah enggak, itu kosing nya bentar aja, apalagi kopast nya

sensor warna dipasang di pin A0, A1, A2 yang merupakan keluaran dari sensor LDR yang di hadapkan dengna LED Merah, Hijau dan Biru .

beikut ini adalah video uji coba nya :



Contact Person : Taufik Adi Sanjaya
No HP / Whats App : 0823 2613 3990
PIN BBM 5983E244
Alamat : Jalan Imogiri Timur KM 11, 
Blawong 1 , RT 01, Trimulyo, 
Jetis, Bantul 55781.


Anda membutuhkan komponen elektronik , Arduino, Sensor, Tutorial(paket belajar), jasa pembuatan alat berbasis mikrokontroler, kendali lampu via jaringan LAN, dan sebagainya ? anda dapat membelinya di www.kedaiarduino.com
 www.kedaiarduino.com