#include <SoftwareSerial.h>
SoftwareSerial myBluetooth(10, 16);
byte KIRMIZI;
byte YESIL;
byte MAVI;
void setup(){
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(9, OUTPUT);
Serial.begin(9600);
myBluetooth.begin(9600);
}
void loop(){
if(myBluetooth.available()){
if(myBluetooth.read()=='K'){
analogWrite(5, KIRMIZI);
analogWrite(6, YESIL);
analogWrite(9, MAVI);
}
}
}
Serialdan tek tek veriler alıyorum. K geldikten sonra 0-255 arası sayı gelebilir bu gelen sayıyı byte KIRMIZI; aktarsın. aynı şekilde diğer renklerde bu şekilde geliyor.
Rica etsem yaparmısınız?
(http://www.1resimyukle.com/images/2015/03/27/tyt.png)
#include <SoftwareSerial.h>
SoftwareSerial myBluetooth(10, 16);
byte KIRMIZI;
byte YESIL;
byte MAVI;
int gelenler[16];
byte D_kirmizi = 0;
byte D_yesil = 0;
byte D_mavi = 0;
int islem = 0;
int gelen_say = 0;
int v_gel = 0;
void setup() {
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(9, OUTPUT);
Serial.begin(9600);
myBluetooth.begin(9600);
}
//burada en son veriden sonra 'S' geldiğini kabul ediyoruz.
//Bunu göndermen gerekecek veya kendin düzenlemen
void loop() {
if (myBluetooth.available()) {
int veri = 0;
veri = myBluetooth.read();
if (veri == 'S') //en son bunun geldiğini kabul ediyoruz.
{
byte deger = 0;
v_gel = 0;
islem = 1;
for (int i; i < gelen_say; i++)
{
if (deger == 3)
{
gelenler[i] -= 0x30;// gelen verinin türünden emin
// değilim oyüzden bu satırların silinmesi gerekesilir
if ( D_mavi < 10)
D_mavi = gelenler[i];
else if ( D_mavi < 100)
D_mavi = (D_mavi * 10) + gelenler[i];
else
D_mavi = (D_mavi * 10) + gelenler[i];
}
if (gelenler[i] == 'M')
{ deger = 3;
}
if (deger == 2)
{
gelenler[i] -= 0x30;// gelen verinin türünden emin
// değilim oyüzden bu satırların silinmesi gerekesilir
if ( D_yesil < 10)
D_yesil = gelenler[i];
else if ( D_yesil < 100)
D_yesil = (D_yesil * 10) + gelenler[i];
else
D_yesil = (D_yesil * 10) + gelenler[i];
}
if (gelenler[i] == 'Y')
{ deger = 2;
}
if (deger == 1)
{
gelenler[i] -= 0x30;// gelen verinin türünden emin
// değilim oyüzden bu satırların silinmesi gerekesilir
if ( D_kirmizi < 10)
D_kirmizi = gelenler[i];
else if ( D_kirmizi < 100)
D_kirmizi = (D_kirmizi * 10) + gelenler[i];
else
D_kirmizi = (D_kirmizi * 10) + gelenler[i];
}
if (gelenler[i] == 'K')
{ deger = 1;
D_kirmizi = 0;
}
}
}
if (veri == 'K') {
gelen_say = 0;
v_gel = 0;
}
if (v_gel == 1)
{
gelenler[gelen_say] = veri;
gelen_say++;
}
if (islem == 1) {
islem = 0;
analogWrite(D_kirmizi, KIRMIZI);
analogWrite(D_yesil, YESIL);
analogWrite(D_mavi, MAVI);
}
}
}
dediğin kadar basit olmadığını biliyoruz.
çalışır çalışmaz, denemedim.
Kabil abi başka birisi yapmıştı. Sandığım kadar kolay değilmiş. Yinede Teşekkür ederim.
http://forum.arduino.cc/index.php?topic=311660.0 (http://forum.arduino.cc/index.php?topic=311660.0)