Bluetooth'tan telefonuma veri gelirken servo motor hareket ediyor.
Örnek 1 gönderirsem. Oradaki "myBluetooth.println" komutu yok. Bu yüzden orada sorun çıkmıyor.
Ama 2,9,s... gönderirsem servo motor 100ms çok kısa bir süre için hareket ediyor. Sebebini çözemedim.
#include <SoftwareSerial.h>
SoftwareSerial myBluetooth(10, 11); // RX, TX
char deger;
#include <Servo.h>
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
float h;
float t;
float f;
Servo SG90;
void setup(){
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
myBluetooth.begin(9600);
// Serial.begin(9600);
myBluetooth.println(" ");
myBluetooth.println(" Bluetooth Aktif ");
dht.begin();
SG90.attach(9);
}
void loop(){
if(myBluetooth.available()){
deger = myBluetooth.read();
// Serial.println(deger);
switch(deger){
case '1':
if(digitalRead(3)==LOW){
digitalWrite(3, HIGH);
}else{
digitalWrite(3, LOW);
}
break;
case '2':
if(digitalRead(4)==LOW){
digitalWrite(4, HIGH);
myBluetooth.println(" MUTFAK LAMBASI ACILDI ");
}else{
digitalWrite(4, LOW);
myBluetooth.println(" MUTFAK LAMBASI KAPANDI ");
}
break;
case '3':
if(digitalRead(5)==LOW){
digitalWrite(5, HIGH);
myBluetooth.println(" OTURMA ODASI LAMBASI ACILDI ");
}else{
digitalWrite(5, LOW);
myBluetooth.println(" OTURMA ODASI LAMBASI KAPANDI ");
}
break;
case '4':
if(digitalRead(6)==LOW){
digitalWrite(6, HIGH);
myBluetooth.println(" YATAK ODASI LAMBASI ACILDI ");
}else{
digitalWrite(6, LOW);
myBluetooth.println(" YATAK ODASI LAMBASI KAPANDI ");
}
break;
case '5':
if(digitalRead(7)==LOW){
digitalWrite(7, HIGH);
myBluetooth.println(" BALKON LAMBASI ACILDI ");
}else{
digitalWrite(7, LOW);
myBluetooth.println(" BALKON LAMBASI KAPANDI ");
}
break;
case '6':
if(digitalRead(8)==LOW){
digitalWrite(8, HIGH);
myBluetooth.println(" SOKAK LAMBASI ACILDI ");
}else{
digitalWrite(8, LOW);
myBluetooth.println(" SOKAK LAMBASI KAPANDI ");
}
break;
case '0':
SG90.write(5);
myBluetooth.println(" SERVO MOTOR 5 DERECE ");
break;
case '9':
SG90.write(175);
myBluetooth.println(" SERVO MOTOR 175 DERECE ");
break;
case 's':
h = dht.readHumidity();
t = dht.readTemperature();
f = dht.readTemperature(true);
if (isnan(h) || isnan(t) || isnan(f)) {
myBluetooth.print("HATA! DHT11 SENSOR OKUNAMIYOR!");
return;
}
myBluetooth.print(" SICAKLIK: ");
myBluetooth.print(t);
myBluetooth.println(" *C ");
break;
case 'n':
h = dht.readHumidity();
t = dht.readTemperature();
f = dht.readTemperature(true);
if (isnan(h) || isnan(t) || isnan(f)) {
myBluetooth.println(" HATA! DHT11 SENSOR OKUNAMIYOR! ");
return;
}
myBluetooth.print(" NEM: ");
myBluetooth.print(h);
myBluetooth.println(" % ");
break;
}
}
}
mesaj birleştirme:: 02 Mayıs 2016, 13:13:34
Servo motorun beslemesi başka kaynaktan besledim. sorun devam ediyor.
tek karakterlik komut kullanma.
bazen o komut gelmiş gibi işlem yapma olabiliyor.