Помогите пожалуйста советом! Пытаюсь включить отработку программы для сервы через СМСку на GSM-Shield. Вот скетч: [/CODE] После према СМСки серва просто дергается и все. Питается серва от отдельного источника 6В Мне кажется есть ошибки в коде.
Код (Text): #include <SoftwareSerial.h> #include <Servo.h> Servo myservo; SoftwareSerial gprsSerial(0, 1); int pos = 0; void setup() { myservo.attach(9); // attaches the servo on pin 9 to the servo object gprsSerial.begin(9600); Serial.begin(9600); // Настраиваем приём сообщений с других устройств // Между командами даём время на их обработку gprsSerial.print("AT+CMGF=1\r"); delay(300); gprsSerial.print("AT+IFC=1, 1\r"); delay(300); gprsSerial.print("AT+CPBS=\"SM\"\r"); delay(300); gprsSerial.print("AT+CNMI=1,2,2,1,0\r"); delay(500); } String currStr = ""; // Переменная принимает значение True, если текущая строка является сообщением boolean isStringMessage = false; void loop() { if (!gprsSerial.available()) return; char currSymb = gprsSerial.read(); if ('\r' == currSymb) { if (isStringMessage) { //если текущая строка - SMS-сообщение, //отреагируем на него соответствующим образом if (!currStr.compareTo("Servo")) { Serial.println("Starting servo"); for(pos = 0; pos <= 180; pos +=90) { myservo.write(pos); delay(150); } for(pos = 180; pos>=1; pos-=90) { myservo.write(pos); delay(150); } } isStringMessage = false; } else { if (currStr.startsWith("+CMT")) { //если текущая строка начинается с "+CMT", //то следующая строка является сообщением isStringMessage = true; Serial.println("String start with +CMT"); } } currStr = ""; } else if ('\n' != currSymb) { currStr += String(currSymb); }
Код похож на правду. Соединены ли земли контура питания сервы и Arduino? Работает ли серва без GPRS-шилда, просто с кодом из двух ваших циклов?
Ещё раз просмотрел код. Вроде бы всё ок. Если серва подёргивается при получении SMS, то дело доходит до `myservo.write`. Если дело до него доходит, значит мы в цикле. Если мы в цикле, всё должно отработать. Но не работает. У меня есть подозрение, что в этот момент, по некоторой причине вся ваша конструкция перезагружается. Можете попробовать вставить мигание светодиода в setup'е, чтобы подтвердить или опровергнуть теорию. И ещё, пальцем в небо: может попробовать для servo другой pin… на всякий случай, во избежание коллизии с чем-нибудь на GPRS Shield.
Всем добрый день! Мне требуется GSM сервопривод для дистанционного управления ручкой котла. Времени на изучение нет. Может кто-нибудь продаст мне уже готовый продукт ? 892О-615-98семь6 Алексей.
Что такое "GSM сервопривод"? Можете купить контроллер, GSM-shield и сервопривод. Прошивка будет несложная, поищите тему "управление отоплением в загородном доме", там вроде бы похожая задача решалась. Чтобы сервопривод был сразу с управлением по GSM - я о таких чудесах еще не слышал