09-12-2019, 18:57
(Ten post był ostatnio modyfikowany: 09-12-2019, 19:49 przez Robson Kerman.
Powód edycji: Wkleiłem kod.
)
Dzień dobry,
Mam problem, a dokładniej chodzi o to, że chciałem zrobić sterowany laser dla kota działający z kontrolerem na telefonie (bluetooth). Zbudowałem go, a kiedy zacząłem go programować, okazało się, że nie umiem tego zrobić. Dzięki diagnostyce udało mi się ustalić, że komendy if nie działają i najzwyczajniej if nie wykrywa w odpowiednim momencie, że musi odpalić inne komendy. Czy mógłby ktoś mi pomóc? Załączam plik z (dotychczasowym) kodem.
kod laserek.zip (Rozmiar: 790 bajtów / Pobrań: 1)
Mam problem, a dokładniej chodzi o to, że chciałem zrobić sterowany laser dla kota działający z kontrolerem na telefonie (bluetooth). Zbudowałem go, a kiedy zacząłem go programować, okazało się, że nie umiem tego zrobić. Dzięki diagnostyce udało mi się ustalić, że komendy if nie działają i najzwyczajniej if nie wykrywa w odpowiednim momencie, że musi odpalić inne komendy. Czy mógłby ktoś mi pomóc? Załączam plik z (dotychczasowym) kodem.
kod laserek.zip (Rozmiar: 790 bajtów / Pobrań: 1)
Kod:
#define Speed 3 //określenie pinu do definiowania szybkości silnika
#define output1 5 // określenie pierwszego pinu silnika
#define output2 6 // określenie drugiego pinu silnika
#define laser 11 // określenie pinu lasera
#include <Servo.h> // biblioteka serwomachanizmów
Servo laserek; // definiowanie nowego serwa
int moc = 170; //moc lasera (przy zbyt dużym napięciu laser się przegrzewa)
int c = 0; // odbieranie informacji od bluetooth
void setup() {
pinMode(output1,OUTPUT);
pinMode(output2,OUTPUT);
pinMode(Speed, OUTPUT);
pinMode(laser, OUTPUT);
laserek.attach(9);
digitalWrite(laser, moc);
laserek.write(0);
Serial.begin(9600);
}
void loop() {
digitalWrite(laser, moc);
Serial.write(c);// część diagnostyki
if (Serial.available()){ //if od wykrywania wiadomości z kontrolera (działa)
c = Serial.read();
Serial.write(c); // część diagnostyki
}
if (c == 1){ //wykrycie pierwszego przycisku (nie działa)
laserek.write(laserek.read() + 1);
Serial.write("KK"); //część diagnostyki
}
if (c == "2"){ //if od drugiego przycisku (nie działa)
laserek.write(laserek.read() - 1);
Serial.write("KK"); //część diagnostyki
}
if (c == 3){ //if od trzeciego przycisku (nie działa)
digitalWrite(Speed, 255);
digitalWrite(output1,LOW);
digitalWrite(output2,HIGH);
Serial.write("KK"); //część diagnostyki
delay(500);
}
if (c == 4){ //if od czwartego przycisku (nie działa)
digitalWrite(Speed, 255);
digitalWrite(output1,HIGH);
digitalWrite(output2,LOW);
Serial.write("KK"); // część diagnostyki
delay(500);
}
if (c == 5){ //if od piątego przycisku (nie działa)
if(moc > 120){
moc = 0;
Serial.write("KK"); //część diagnostyki
}else{
moc = 170;
Serial.write("KK"); //część diagnostyki
}
}
}