Доброго времени суток всем. Делаю машинку под управлением ардуино по bluetooth. Все дигитальные пины заняты, использую аналоговые пины для того чтоб включать светодиоды и выключать. Суть проблемы в том что когда я подаю HIGH на пин А4 он загорается как и должно быть но когда подаю LOW он не выключает светодиод. на о стольных пинах(А0,А1) все работает ок. П.с пины А2,А3,А5,А6,А7 вообще не реагируют, как будто не работают. вот скеч(он еше не доработан): 01 #include <SoftwareSerial.h> 02 #include <DFPlayer_Mini_Mp3.h> 03 #include <AFMotor.h> 04 #include <Servo.h> 05 AF_DCMotor motor2(2, MOTOR12_64KHZ); 06 AF_DCMotor motor1(1, MOTOR12_64KHZ); 07 AF_DCMotor motor3(3, MOTOR12_64KHZ); 08 AF_DCMotor motor4(4, MOTOR12_64KHZ); 09 Servo servo1; 10 SoftwareSerial mySerial(2,13); // RX, TX 11 /*int sound==0; 12 long previousMillis = 0; 13 long interval = 1000;*/ 14 15 void setup() { 16 servo1.write(90); 17 delay(15); 18 Serial.begin(9600); 19 mySerial.begin(9600); 20 mp3_set_serial (Serial); //set Serial for DFPlayer-mini mp3 module 21 mp3_set_volume (30); 22 motor1.setSpeed(100); 23 motor2.setSpeed(100); 24 motor3.setSpeed(100); 25 motor4.setSpeed(100); 26 motor1.run(RELEASE) ; 27 motor2.run(RELEASE) ; 28 motor3.run(RELEASE) ; 29 motor4.run(RELEASE) ; 30 servo1.attach(9); 31 pinMode(A0, OUTPUT); 32 pinMode(A4, OUTPUT); 33 pinMode(A1, OUTPUT); 34 35 } 36 37 void loop() { 38 if (mySerial.available() > 0) { 39 char control = mySerial.read(); 40 switch(control) 41 { 42 case 'S': 43 digitalWrite(A1,LOW); 44 motor1.run(RELEASE) ; 45 motor2.run(RELEASE) ; 46 motor3.run(RELEASE) ; 47 motor4.run(RELEASE) ; 48 break; 49 case 'F': 50 digitalWrite(A1,LOW); 51 motor1.run(FORWARD) ; 52 motor2.run(FORWARD) ; 53 motor3.run(FORWARD) ; 54 motor4.run(FORWARD) ; 55 break; 56 case 'B': 57 motor1.run(BACKWARD) ; 58 motor2.run(BACKWARD) ; 59 motor3.run(BACKWARD) ; 60 motor4.run(BACKWARD) ; 61 digitalWrite(A1, HIGH); 62 break; 63 case 'L': 64 servo1.write(50); 65 delay(15); 66 break; 67 case 'R': 68 servo1.write(130); 69 delay(15); 70 break; 71 case 'C': 72 servo1.write(90); 73 delay(15); 74 break; 75 case 'Q': 76 digitalWrite(A4, HIGH); 77 break; 78 case 'W': 79 digitalWrite(A4, LOW); 80 break; 81 case 'P': 82 digitalWrite(A0, HIGH); 83 break; 84 case 'O': 85 digitalWrite(A0, LOW); 86 break; 87 case '1': 88 mp3_play (1); 89 break; 90 case '2': 91 mp3_stop (); 92 break; 93 94 } 95 } 96 } Кто то знает в чем проблема?
Все уже разберал второй день сижу с паяльником. Есть такое предчувствие что это программный косяк, хотя вроде все просто. Есть в цепочке мотор шильд и мп3 модуль с каждым своя история но все вроде работает кроме 2 светодиодов подключенных параллельно через резисторы.
Попробуй на другой ардуинке. Сразу будет понятно - программный или аппаратный косяк. С виду скетч вполне корректный.
Пока не чего не нашол. Включается без проблем а вот выключить не могу. Я новичок, есть противоречия? к каждему светодиоду я припаял по резистору а потом сойденил оба плюса и минуса. При подачи питание на плату не чего само произвольно не загорается,только при подачи моего сигнала. исходя из этого могу предположить что аппаратный косяк отпадает. Может быть такое что это какие то наводки мешают?
Вы меня не поняли. Я сказал "надо проверить пины". Четыре строчки кода и тестер. Тут неопределенности быть не может. Либо пин работает, либо нет. Вы чем-то другим занимались. Еще менее понятно.
проблема в отключении этого пина и это скорей всего программный косяк, так как отдельно все работает.