09-12-2019, 21:55
(09-12-2019, 20:33)Robson Kerman napisał(a): Pierwsza sprawa:Sprawdzałem i nie wysyła ascii tylko to co na telefonie wpisywałem. I nie chodziło mi o regulacje mocy, tylko o to, żeby można było wyłączyć, a 5V z pinu było za dużo i laser się przegrzewał, więc trzeba było zmienić PWN i wszystko działa z digitalRead.
Tak nie reguluje się mocy lasera. Podejrzewam, że chodziło Ci o sygnał PWM, więc powinno to wyglądać tak:Kod:digitalWrite(laser, moc);
Kod:analogWrite(laser, moc);
Druga sprawa, to jak wyglądają komendy wysyłane z telefonu?
Tak naprawdę to wysyłasz kody ASCII, a c=Serial.read() przypisuje te kody do zmiennej c.
Więc jeśli wyślesz char '1', to c=49 i za chwilę c=10 bo jeszcze mamy '\n' co w ASCII jest decymalnie równe 10.
Proponuję:
Kod:if (Serial.available())
{
c = Serial.parseInt(SKIP_WHITESPACE,'\n');
}