Глюк Serial.println на arduino uno
- Войдите на сайт для отправки комментариев
Втр, 22/11/2016 - 12:39
Ардуино отправляет 4 раза Serial.println вместо одного
как исправить чтоб только было один раз,или я чтото не пойму или баг?
код регулирует яркость на лед ленте через драйвер L298N подключенный по шим по 3 пину
int IN3 = 5;
int IN4 = 4;
int ENB = 3;
int n;
int b;
void setup()
{
Serial.begin(9600);
pinMode (ENB, OUTPUT);
pinMode (IN3, OUTPUT);
pinMode (IN4, OUTPUT);
}
void loop()
{
if (Serial.available() > 0) {
n = Serial.read();
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);
switch (n) {
case '1':
b= b + 10 ;
if ( b > 255) { b = 0; }
break;
case '2':
b = b - 10 ;
if ( b < 0) { b = 0; }
break;
}
analogWrite(ENB,b);
delay(100);
Serial.println(b);
}
delay(100);
}
int IN3 = 5; int IN4 = 4; int ENB = 3; int n; int b; void setup() { Serial.begin(9600); pinMode (ENB, OUTPUT); pinMode (IN3, OUTPUT); pinMode (IN4, OUTPUT); } void loop() { if (Serial.available() > 0) { n = Serial.read(); digitalWrite (IN3, HIGH); digitalWrite (IN4, LOW); switch (n) { case '1': b= b + 10 ; if ( b > 255) { b = 0; } break; case '2': b = b - 10 ; if ( b < 0) { b = 0; } break; } analogWrite(ENB,b); delay(100); Serial.println(b); } delay(100); }Все нормально работает
А что вы отправляете со стороннего устройства на ардуину? В данной реализации serial.println будет срабатывать ровно столько раз, сколько байт приходит на ардуину.
отправляю я с андроид смартфона символ 1 или 2 .
работает то норм код, только вот приходит 4 раза, вот в чем проблема.
отправляю символы 1 или 2 , со смартфона андроид по блютуз.
нашел решение оказалось надо было включить принт в кейс
int IN3 = 5; int IN4 = 4; int ENB = 3; int n; int b; void setup() { Serial.begin(9600); pinMode (ENB, OUTPUT); pinMode (IN3, OUTPUT); pinMode (IN4, OUTPUT); } void loop() { if (Serial.available() > 0) { n = Serial.read(); } digitalWrite (IN3, HIGH); digitalWrite (IN4, LOW); switch (n) { case '1': b= b + 10 ; if ( b > 255) { b = 0; } Serial.println(b); break; case '2': b = b - 10 ; if ( b < 0) { b = 0; } Serial.println(b); break; } analogWrite(ENB,b); delay(30); }Значит, смартфон у Вас отправляет вместо одного байта четыре.
Бороться лучше с болезнью, а не с симптомами.