Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

nnn
2015-09-16 14:34:52

Да мои бока! smile)))))

Спасибо переписал код без delay в SerialEvent ВСЕ РАБОТАЕТ!!!!!!!!!!!
Попробую подогнать код ...

iakoff, скидуй "новую почту" вышлю ПИВО!!! Моя благодарность!

NoName
2015-09-16 12:31:23

void serialEvent()  прерывание?
а delay  наверное где то ожидает прерывания от таймера? ))))
а так  как ардуино не умеет выполнять прерывание в  прерывании, то благополучно и отваливается usb
если так - то рабочая версия smile

nnn
2015-09-16 09:58:58

Спасибо! Попробую убрать delay из serial через флаг в Loop().
Позже отпишусь!
P.S. iakoff - Ваш ответ "нов", моя благодарность, надеюсь сработает!

nnn
2015-09-16 09:55:52

digitalWrite (12,LOW);
delay(200);//open rele
digitalWrite (12,HIGH);

чтобы инд. катушка сработала!

распиновка по реле правильная

NoName
2015-09-15 22:00:38

какая маркировка на relay?
по хорошему datasheet покажите  и номера контактов которые вы используете

iakoff
2015-09-15 20:38:24

delay(200) в сериал евенте ставить не нужно.
serialEvent должен выполнятся как можно быстрее, и сатвить там 200мс задержку нельзя.
Если нужно долго что то обрабатывать после serialEvent, то лучше в нем взвести флаг и потом в лупе по флагу обработать.

nnn
2015-09-15 17:14:47

с лампочкой работает Ок (12в).
Как убрать перегрузку питания если источник и так уже внешний с запасом (12в 5А)

NoName
2015-09-15 16:10:15

скорее всего у Вас что то очень сильно погружает питание, ищите "сопли" на плате
вместо реле поставьте лампочку, посмотрите что будет

vvr
2015-09-15 14:41:29

а что вы вообще хотите сделать?

wrdarduino
2015-09-15 13:51:24

Почему плохо работает схема:

5e56074ed9ffa038ffdda8b6e0bf5910.png

И зависает USB порт с Arduino когда использую с код:
(Я уже просто заеб.........)

int btnSost=LOW;
char send_mess;
byte flag;

void setup() {
  pinMode(12, OUTPUT);
  Serial.begin(9600);
  Serial.setTimeout(250);
  pinMode(2,INPUT);
  digitalWrite(12, HIGH);   
}

void loop() {
 if (flag==0){  
  btnSost=digitalRead(2);
  send_mess='0';
  if (btnSost==HIGH){send_mess='1';}
 }else{
       Serial.println(send_mess);
       flag=0;
 }
 delay(600); 
}

void serialEvent(){
 if (Serial.available()>0){
  char sread=Serial.read();
  
  switch (sread){
   case '6':   //openCash
               send_mess='0';
               if (btnSost==HIGH){send_mess='1';}  
               break;
   case '7':   //init;
               send_mess='3';
               break;
   case '8':   //open 
               if (btnSost==HIGH){
                 digitalWrite (12,LOW);
                 delay(200);//open rele
                 digitalWrite (12,HIGH); 
                 //delay(300);
                 send_mess='9';
               } else {send_mess='2';} 
               break;                        
  } 
  flag=1;
 }
}

ПОМОГИТЕ!!!!!!!!!!!!!!

Підвал форуму