Зависание UNO при отключении от COM-порта
- Войдите на сайт для отправки комментариев
Чт, 10/09/2020 - 23:46
Здравствуйте, столкнулся с такой проблемой на созданной сигнализации построенной на уне, и сим800л.
Всё работает без перебоев, пока подключен ноут, стоит отключить и спустя какое то время, 10мин-1час код зависает, модем работает, до него дозваниваюсь, но вот смс в ответ не шлёт тревоги не выдаёт и звонок не сбрасывает как это прописано, и вот вопрос, что может отвечать за такие непонятные действия?
А вот код, может будет яснее
//ОТПРАВЛЯЕТ сообщения но не может достучатсья до DHT поэтому зависает //добавлена сигналка String vers = "Start1.4"; // Версия #include <SoftwareSerial.h> // Библиотека програмной реализации обмена по UART-протоколу SoftwareSerial SIM800(3, 4); // RX, TX пины подключения SIM800l #include "OneWire.h" // Библиотека для подключения датчика DS18b20 OneWire ds(8); // Пин подключения датчика DS18b20 int tkot = 0; // Переменная для хранения значение температуры с датчика DS18B20 long lastUpdateTime = 0; // Переменная для хранения времени последнего считывания с датчика const int TEMP_UPDATE_TIME = 1000; // Определяем периодичность проверок #include "max6675.h" // Библиотека для подключения модуля термопары MAX6675 int thermoDO = 12; // он же SO int thermoCS = 10; // 8/12 int thermoCLK = 13; // он же SCK MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO); // int tfire = 0; // Переменная для хранения значение температуры с термопары модуля MAX6675 #include "DHT.h" // Библиотека для подключения датчика DHT #define DHTTYPE DHT22 // Установка модели датчика DHT(11/22) #define DHTPIN 11 // Пин подключения датчика DHT unsigned long last_time_sms; // Переменная для хранения времени последнего отправленного SMS float hdom, tdom; // DHT dht(DHTPIN, DHTTYPE); // //int pins[3] = {6, 7}; // Пины с подключенными реле String protectiphone = ""; // Переменная хранящая номер телефона поставившего на охрану, //которому будет осуществляться звонок, при тревоге String iphone = "+79999999999"; // Переменная хранящая в себе номер из мелого списка который последним отправлял SMS модулю String message = vers; // Переменная хранящая в себе текст SMS bool sendsmsok; // Флаг успешной отправки смс String _response = ""; // Переменная для хранения ответа модуля long lastUpdate = millis(); // Время последнего обновления смс long lastUpdateOk = millis(); // Время последнего обновления состояния модуля long updatePeriod = 60000; // Проверять каждые 20 секунд наличие смс long updateOk = 59000; // Проверять каждые 59 секунд состояние модуля String phones = "+7999999999, +79999999999"; // Белый список телефонов String fullinf = "fail"; // Переменная хранящая информацию со всех датчиков int protect1 = A0; // Пин подключения охранной зоны №1 (вход) int protect2 = A1; // Пин подключения охранной зоны №2 (вход с гаража) int relzum = 6; // Пин подключения реле отвечающей за сирену int relsvet = 7; // Пин подключения реле отвечающей за свет int protect1_val = 0; // Переменная для хранения значения с датчика зоны №1 int protect2_val = 0; // Переменная для хранения значения с датчика зоны №2 bool protect; // Переменная флага постановки сигнализации (ON/OFF) int flagsms = 0; // Переменная флага отправки смс bool alarm; // Переменная флага сработки охранки void(* resetFunc) (void) = 0; // Объявляем функцию void (програмный reset) void setup() { pinMode(protect1,INPUT); // Настройка пина как вход pinMode(protect2,INPUT); // Настройка пина как вход pinMode(relzum,OUTPUT); // Настройка пина как выход pinMode(relsvet,OUTPUT); // Настройка пина как выход digitalWrite(relzum, HIGH); // Установка высокого уровня сигнала на реле т.к. работают в обратной полярности digitalWrite(relsvet, HIGH); // Установка высокого уровня сигнала на реле т.к. работают в обратной полярности bool protect = false; // Флаг состояния сигнализации при включении устанавливается OFF alarm = false; sendsmsok = false; dht.begin(); // Serial.begin(9600); // Установка скорость обмена данными с компьютером SIM800.begin(9600); // Установка скорость обмена данными с модемом Serial.println(vers); // Сообщение в монитор порта о версии программы sendATCommand("AT", true); // Отправили AT для настройки скорости обмена данными //sendATCommand("AT+CMGDA=\"DEL ALL\"", true); // Удаляем все SMS, чтобы не забивать память sendATCommand("AT+CMGF=1;&W", true); // Включаем текстовый режима SMS (Text mode) и сразу сохраняем значение (AT&W)! do { _response = sendATCommand("AT+CLIP=1", true); // Включаем АОН _response.trim(); // Убираем пробельные символы в начале и конце } while (_response != "OK"); // Не пускать дальше, пока модем не вернет ОК lastUpdate = millis(); // Обнуляем таймер проверки наличия сообщений lastUpdateOk = millis(); // Обнуляем таймер проверки состояния модуля SIM800L } String sendATCommand(String cmd, bool waiting) { // Функция отправки модулю SIM800L команд String _resp = ""; // Переменная для хранения результата Serial.println(cmd); // Дублируем команду в монитор порта SIM800.println(cmd); // Отправляем команду модулю if (waiting) { // Если необходимо дождаться ответа... _resp = waitResponse(); // ... ждем, когда будет передан ответ if (_resp.startsWith(cmd)) { // Убираем из ответа дублирующуюся команду _resp = _resp.substring(_resp.indexOf("\r", cmd.length()) + 2); } Serial.println(_resp); // Дублируем ответ в монитор порта } return _resp; // Возвращаем результат. Пусто, если проблема } String waitResponse() { // Функция ожидания ответа и возврата полученного результата String _resp = ""; // Переменная для хранения результата long _timeout = millis() + 10000; // Переменная для отслеживания таймаута (10 секунд) while (!SIM800.available() && millis() < _timeout) {}; // Ждем ответа 10 секунд, если пришел ответ или наступил таймаут, то... if (SIM800.available()) { // Если есть, что считывать... _resp = SIM800.readString(); // ... считываем и запоминаем } else { // Если пришел таймаут, то... Serial.println("Timeout..."); // ... оповещаем об этом и... } return _resp; // ... возвращаем результат. Пусто, если проблема } bool hasmsg = false; // Флаг наличия сообщений к удалению int start = 0; // Флаг отправки SMS о включении Arduino //delay(20000); // Ждём сохранения параметров, установки связи модулем SIM800L void loop() { /*if(alarm == true){ sendATCommand("ATD\"" + iphone + "\"", true); }*/ //hdom = dht.readHumidity(); // Запись значения влажности с датчика DHT в переменную //tdom = dht.readTemperature(); // Запись значения температуры с датчика DHT в переменную tfire = thermocouple.readCelsius(); // Запись значения температуры с датчика DS18B20 в переменную detectTemperature(); // Определяем температуру теплоносителя в котле от датчика DS18B20 fullinf = //"T dom = " + String(tdom, 1) + // Запись в переменную информиации всех состояний и значений с датчиков //" C \r\nH dom = " + String(hdom, 1) + "kotla = " + String(tkot) + " C \r\nT fire = " + String(tfire) + " C \r\nProtect = " + String(protect == 0 ? "OFF" : "ON"); if (start == 0){ // Проверка флага отправки сообщения о включении, если start = 0, то: sendSMS(); // Отправляем сообщение с версией прошивки //if(сообщение отправлено){ // флаг отправки ставмим 1 //} start = 1; // Ставим флаг отправки сообщения о включении start = 1 } if (protect == true){ // Проверяем значение флага на постановку охраны, если флаг true то: protect1_val = digitalRead(protect1); // Записываем значение с датчика дома protect2_val = digitalRead(protect2); // Записываем значение с датчика котельной if(protect1_val == LOW ){ // Проверяем значение с датчиков зоны №1, если уровень сигнала LOW, то: //добавить флаг отправленного сообщения и запрет на отправку повторную раньше чем через 5 мин //______________________________________________________________________________ //проверяется значение с датчика двери входной если датчик сработал и сигнал нижкого уровня то //if(сообщение отправлено){ // флаг отправки ставмим 1 //} digitalWrite(relsvet, LOW); // Включаем реле на котором подключено освещение в доме digitalWrite(relzum, LOW); // Включаем реле на котором подключена сирена message = "Dom ALARM"; // Запись в переменную сообщения о проникновении в зону №1 sendSMS(); // Запуск функции отправки SMS delay(10000); //alarm = true; // Ставим флага сработки охранки в значение 1 //если смс отправлено то ставим флаг 1(можно узнать у модема) //__________________________________________________________________________ sendATCommand("ATD" + protectiphone + ";", true); // Делаем звонок на телефон который включил охранку //если смс не отправлено то повторяем отправку пока не отправится,если отправилось выходим из цикла //________________________________________________________________________ } if(protect2_val == LOW ){ // Проверяем значение с датчиков зоны №2, если уровень сигнала LOW, то: //добавить флаг отправленного сообщения и запрет на отправку повторную раньше чем через 5 мин //______________________________________________________________________________ //проверяется значение с датчика двери гаража если датчик сработал и сигнал нижкого уровня то digitalWrite(relsvet, LOW); // Включаем реле на котором подключено освещение в доме digitalWrite(relzum, LOW); // Включаем реле на котором подключена сирена message = "Kotelna ALARM"; // Запись в переменную сообщения о проникновении в зону №2 iphone = protectiphone; if (alarm == false){ alarm = true; // Ставим флага сработки охранки в значение 1 sendSMS(); // Запуск функции отправки SMS Serial.println("SMS Kotelna ALARM"); //если смс отправлено то ставим флаг 1 delay(10000); sendATCommand("ATD" + protectiphone + ";", true); // Делаем звонок на телефон который включил охранку Serial.println(" TEL Kotelna ALARM"); } //sendATCommand("ATD" + protectiphone + ";", true); // Делаем звонок на телефон который включил охранку //если смс не отправлено то повторяем отправку пока не отправится,если отправилось выходим из цикла } } if (lastUpdateOk + updateOk < millis() ) { // Пора проверить состояние модуля alarm = false; lastUpdateOk = millis(); } if (_response.startsWith("RING")) { // Есть входящий вызов sendATCommand("ATH", true); // Отклоняем вызов/"ATA" Отвечаем на вызов } if (lastUpdate + updatePeriod < millis() ) { // Пора проверить наличие новых сообщений //alarm = false; //hdom = dht.readHumidity(); // Запись значения влажности с датчика DHT в переменную //tdom = dht.readTemperature(); // Запись значения температуры с датчика DHT в переменную Serial.println(fullinf); //Serial.println("sendsmsok = " + String(sendsmsok) + " \r\nT alarm = " + String(alarm)); do { _response = sendATCommand("AT+CMGL=\"REC UNREAD\",1", true);// Отправляем запрос чтения непрочитанных сообщений if (_response.indexOf("+CMGL: ") > -1) { // Если есть хоть одно, получаем его индекс int msgIndex = _response.substring(_response.indexOf("+CMGL: ") + 7, _response.indexOf("\"REC UNREAD\"", _response.indexOf("+CMGL: ")) - 1).toInt(); char i = 0; // Объявляем счетчик попыток do { i++; // Увеличиваем счетчик _response = sendATCommand("AT+CMGR=" + (String)msgIndex + ",1", true); // Пробуем получить текст SMS по индексу _response.trim(); // Убираем пробелы в начале/конце if (_response.endsWith("OK")) { // Если ответ заканчивается на "ОК" if (!hasmsg) hasmsg = true; // Ставим флаг наличия сообщений для удаления sendATCommand("AT+CMGR=" + (String)msgIndex, true); // Делаем сообщение прочитанным sendATCommand("\n", true); // Перестраховка - вывод новой строки parseSMS(_response); // Отправляем текст сообщения на обработку break; // Выход из do{} } else { // Если сообщение не заканчивается на OK //Serial.println ("Error 123"); // Какая-то ошибка sendATCommand("\n", true); // Отправляем новую строку и повторяем попытку } } while (i < 3); sendATCommand("AT+CMGR=" + (String)msgIndex, true); // Делаем сообщение прочитанным sendATCommand("AT+CMGDA=\"DEL READ\"", true); // Удаляем все прочитанные сообщения break; } else { lastUpdate = millis(); // Обнуляем таймер if (hasmsg) { sendATCommand("AT+CMGDA=\"DEL READ\"", true); // Удаляем все прочитанные сообщения hasmsg = false; } break; } } while (1); } if (SIM800.available()) { // Если модем, что-то отправил... _response = waitResponse(); // Получаем ответ от модема для анализа _response.trim(); // Убираем лишние пробелы в начале и конце Serial.println(_response); // Если нужно выводим в монитор порта if (_response.indexOf("+CMTI:")>-1) { // Пришло сообщение об отправке SMS sendsmsok = true; // Ставим флаг успешной отправки SMS lastUpdate = millis() - updatePeriod; // Теперь нет необходимости обрабатываеть SMS здесь, достаточно просто // сбросить счетчик автопроверки и в следующем цикле все будет обработано } } if (Serial.available()) { // Ожидаем команды по Serial... SIM800.write(Serial.read()); // ...и отправляем полученную команду модему } } void parseSMS(String msg) { // Парсим SMS String msgheader = ""; String msgbody = ""; String msgphone = ""; msg = msg.substring(msg.indexOf("+CMGR: ")); msgheader = msg.substring(0, msg.indexOf("\r")); // Выдергиваем телефон msgbody = msg.substring(msgheader.length() + 2); msgbody = msgbody.substring(0, msgbody.lastIndexOf("OK")); // Выдергиваем текст SMS msgbody.trim(); int firstIndex = msgheader.indexOf("\",\"") + 3; int secondIndex = msgheader.indexOf("\",\"", firstIndex); msgphone = msgheader.substring(firstIndex, secondIndex); msgbody.toLowerCase(); Serial.println("Phone: " + msgphone); // Выводим номер телефона iphone = msgphone; Serial.println("Message: " + msgbody); // Выводим текст SMS if (msgphone.length() > 6 && phones.indexOf(msgphone) > -1) { // Если телефон в белом списке, то... setSMStext(msgbody, msgphone); // ...выполняем команду } else { Serial.println("Unk numb"); // Если номер не в белом списке выводим в монитор порта сообщение sendATCommand("AT+CMGDA=\"DEL READ\"", true); // Удаляем все прочитанные сообщения } } void setSMStext (String result, String phone) { // Функция обработки SMS bool correct = false; // Для оптимизации кода, переменная корректности команды String msgToSend = ""; // Переменная для ответа SMS запросов Serial.println(String(result)); // Вывод в монитор порта if (result.startsWith("t")){ // Проверяем сообщение если в нем "Т", то: Serial.println("!t"); // Выводим команду полученую в SMS в монитор порта msgToSend = fullinf; // Записываем в переменную всю информацию correct = true; // Ставим флаг корректности команды } if (result.startsWith("c")){ // Проверяем сообщение если в нем "С"(Close), то: Serial.println("!c"); // Выводим команду полученую в SMS в монитор порта delay(10000); protect = true; // Ставим флаг поставновки/снятия охранки в состояние ON protectiphone = iphone; // Присваиваем переменной номер телефона который поставил систему на охрвну msgToSend = "\r\nProtect" +(String)(protect == 0 ? "OFF" : "ON");// Записываем в переменную значение флага постановки/снятия охранки correct = true; //Ставим флаг корректности команды } if (result.startsWith("o")){ // Проверяем сообщение если в нем "О"(Open), то: Serial.println("!o"); // Выводим команду полученую в SMS в монитор порта protect = false; // Сбрасываем флаг поставновки/снятия охранки в значение OFF alarm = false; // Сбрасываем флаг сработки охранки ставим значение 0 digitalWrite(relsvet, HIGH); // Выключаем реле света, если оно включено было ранее при сработке охранки digitalWrite(relzum, HIGH); // Выключаем реле звука, если оно включено было ранее при сработке охранки msgToSend = "\r\nProtect" +(String)(protect == 0 ? "OFF" : "ON");// Записываем в переменную значение флага постановки/снятия охранки correct = true; //Ставим флаг корректности команды } if (!correct) { // Если команда не кооректная, то: msgToSend = "Unk command: " + result; // Записываем в переменную сообщение не корректности команды и пишем полученую команду } Serial.println(msgToSend); // Выводим сообщение в моритор порта message = msgToSend; // Записываем в переменную сообщение для отправки в SMS sendSMS(); // Запускаем функцию отправки SMS if (_response.startsWith("+CMGS:")) { // Пришло сообщение об отправке SMS int index = _response.lastIndexOf("\r\n"); // Находим последний перенос строки, перед статусом String result = _response.substring(index + 2, _response.length()); // Получаем статус result.trim(); // Убираем пробельные символы в начале/конце if (result == "OK") { // Если результат ОК - все нормально Serial.println ("Message was sent. OK"); } else { // Если нет, нужно повторить отправку Serial.println ("Message was not sent. Error"); } } } void sendSMS(){ // Функция отправки SMS sendATCommand("AT+CMGS=\"" + iphone + "\"", true); // Переходим в режим ввода текстового сообщения sendATCommand(message + "\r\n" + (String)((char)26), true); // После текста отправляем перенос строки и Ctrl+Z Serial.println ("send SMS"); } int detectTemperature(){ //Функция обработки значения с датчика DS18B20 byte data[2]; ds.reset(); ds.write(0xCC); ds.write(0x44); if (millis() - lastUpdateTime > TEMP_UPDATE_TIME) { lastUpdateTime = millis(); ds.reset(); ds.write(0xCC); ds.write(0xBE); data[0] = ds.read(); data[1] = ds.read(); // Формируем значение tkot = (data[1] << 8) + data[0]; tkot = tkot >> 4; } }Что за плата? Как питается? Схема есть?
За любые непонятные действия отвечает разработчик.
Да тут, скорее всего, не в программе дело, а просто питание проседает при работе GSM и ардуина виснет.
Что за плата? Как питается? Схема есть?
Плата arduino uno , питается от комп блока питания 12в
Да тут, скорее всего, не в программе дело, а просто питание проседает при работе GSM и ардуина виснет.
пошел пробовать записывать от другого источника питания, а у неё есть приобретёт, питаться с внешнего или по usb или она выбирает где лучше ?
Она выбирает где больше напряжение. Диод разделительный работает как ключ.
При работе с модулем SIM800 настоятельно рекомендуется подключить low ESR конденсатор не меньше чем на 100МкФ прямо к входу питания модуля.
При работе с модулем SIM800 настоятельно рекомендуется подключить low ESR конденсатор не меньше чем на 100МкФ прямо к входу питания модуля.
его питает понижающая микросхема с аликатам вроде два кондера есть я конечно не смотрел всю схему, но модуль работает вроде без проблем
Кстати включил кабель ардуинки которым к компу была подключена, в зарядку от телефона, весь день работает стабильно, не понимаю пока если пробелма в этом была то странно ее питают 12в компьютерного блока питания 300ват, а модуль поключен к 5 в через понижайку до 4.3 если память не изменяет, может на плате ардуины вход независимый питания подпорчивает мне жизнь?
получается ей не хватает напруги с бп компа? 0_о
может на плате ардуины вход независимый питания подпорчивает мне жизнь?
вы свой блок питания в какой пин ардуины втыкали - в черный круглый разъем? А GSM от чего при этом питался - с пина 5в ардуины?
может на плате ардуины вход независимый питания подпорчивает мне жизнь?
вы свой блок питания в какой пин ардуины втыкали - в черный круглый разъем? А GSM от чего при этом питался - с пина 5в ардуины?
совершенно верно, только для GSM еще понижался вольтаж до допустимых значений
так не пойдёт, стабилизатор ардуны 12 на 5 всего миллиампер 500-700
вы свой блок питания в какой пин ардуины втыкали - в черный круглый разъем? А GSM от чего при этом питался - с пина 5в ардуины?
совершенно верно, только для GSM еще понижался вольтаж до допустимых значений
[/quote]
GSM modem при посылки сообщений потребляет в пике 2А которые стабилизатор Уны не вытягивает. Нужно либо питать модем отдельным БП или вешать большой кондер по питанию прямо на вход питания модема. Пики потребления хоть и большие, но кратковременные.
совершенно верно, только для GSM еще понижался вольтаж до допустимых значений
ну чему ж вы удивляетесь, так работать не будет
так не пойдёт, стабилизатор ардуны 12 на 5 всего миллиампер 500-700
не понимаю что не так, можно по подробнее, 12в преобразуется в 500-700 что идёт на питание ардуины и всё, вроде всё логично и правильно, кстати она сейчас вот уже сколько дней, когда я попробовал запитать ее от зарядника телефона работает стабильно, а он в свою очередь 500милиампер
Да нету там 500-700. Мощность регулятора примерно 1 вт, разница напряжений 12 - 5 = 7в из чего максимальный ток 1вт / 7 в = 0.15а
Из этих 150ма сама ардуина берет 50-70, и что остается для GSM?
вы свой блок питания в какой пин ардуины втыкали - в черный круглый разъем? А GSM от чего при этом питался - с пина 5в ардуины?
совершенно верно, только для GSM еще понижался вольтаж до допустимых значений
GSM modem при посылки сообщений потребляет в пике 2А которые стабилизатор Уны не вытягивает. Нужно либо питать модем отдельным БП или вешать большой кондер по питанию прямо на вход питания модема. Пики потребления хоть и большие, но кратковременные.
[/quote]
то что он потребляет 2 ампера это я знаю но приччём тут стабилизатор ардуины,я может ошибся выше и не правильно написал, попробую ещё раз
бп компьютерас него берём два провода 12в паяю разъем , и подсоединяю его в ардуину уно , дальше беру другие два провода 5в этого же блока питания паяю к нему понижающую плату, на ней выставлю по моему 4.3 это в пределах нормы для GSM модуля и подсоединяю сам модуль, дальше равноплечий делитель на TX линии т.к. у GSM модуля входное напряжение на ней 2.5 а у ардуины на выходе 5 вольт.
Я хочу сказать что GSM модуль и ардуина питаются от одного блока но по разным линиям, а не ардуина питает модуль(ей можности не хватит это я понимаю, не могу понять почему она переключается с 12в которые идут на ее стабилизатор, на питание от USB
я тупой видимо, т.е. бп компа не может выдать 3 ампера, да ардуину 150ма, сколько то ма на пару сенсоров и 2 ампера на GSM модуль ?
Стабильно проверенный работающий вариант подключения
http://arduino.ru/forum/apparatnye-voprosy/vse-o-sim800l-i-vse-chto-s-ni...
вы свой блок питания в какой пин ардуины втыкали - в черный круглый разъем? А GSM от чего при этом питался - с пина 5в ардуины?
Вы бы определились откуда у вас понижайка для GSM питается, от пина 5в ардуины или напрямую от БП.
Это вы сейчас про что говорите? И вообще, без нормальной схемы вашего подключения (плюс фотографии того как это в реале выглядит) обсуждение бессмысленно.
вы свой блок питания в какой пин ардуины втыкали - в черный круглый разъем? А GSM от чего при этом питался - с пина 5в ардуины?
Вы бы определились откуда у вас понижайка для GSM питается, от пина 5в ардуины или напрямую от БП.
Это вы сейчас про что говорите? И вообще, без нормальной схемы вашего подключения (плюс фотографии того как это в реале выглядит) обсуждение бессмысленно.
конечно напрямую от БП
как смог, автокада под рукой нет, не дома там схему выкинуть мог бы по симпатичнее , но суть не меняется
а говорю я сейчас про то что вот при таком подключении, ардуина почему то хочет питаться от USB а не от БП поэтому раньше когда я отключал кабель от ноута и уносил его с собой всё вставало, приходилось оставлять ноут на стройке что бы охранка работал, теперь же подключил кабель USB в зарядник от телефона и вот уже сколько дней работает всё стабильно, вопрос
Почему 12 БП ее не устраивают, а 500ма китайского зарядника устраивают, связь вижу только в месте производителя, и ардуина и зарядник китайские, покупать оригинальную ардуину пока не решился, побоялся спалю в дальнейшем планирую, но пока рано
как я понимаю что GSM модуль не причём от исправно работает не зависимо от того, остановилась ардуина или нет
shamsing - а нафига ардуину питать от 12в? Раз у вас и так в схеме есть выход из БП 5в - так и питайте им ардуину напрямую. И все будет работать без зарядника.
А китайскость ардуины тут совершенно не причем, можете не тратить деньги на оригинал, проблему это не решит.
shamsing - а нафига ардуину питать от 12в? Раз у вас и так в схеме есть выход из БП 5в - так и питайте им ардуину напрямую. И все будет работать без зарядника.
А китайскость ардуины тут совершенно не причем, можете не тратить деньги на оригинал, проблему это не решит.
думал рас есть разъем 12 то почему бы и нет, т.е подать 5в на пин входа сразу на ардуину будет лучше?
завтра поеду домой тогда попробую такой вариант. спасибо
Только я что то не пойму, вижу пин питания (VIN) указано 7-12 в т.е. всё равно не 5 что бы через стабилизатор встроенный прошло, я правильно понимаю ?
"Выход 5В" может используется и для питания ардуины от стабилизированного источника
"Выход 5В" может используется и для питания ардуины от стабилизированного источника
БП компа, вполне я думаю стабилизированный, к тому же подключен через ББП ,т.е. подключаю, спасибо за подсказку, завтра буду пробовать )) УРА