Ребята, помогите, Недавно начал пользоваться gprs шилдом. Всё нормально, только чтобы он выполнил команду, надо включить у него питание сбоку кнопка(v 2.0). А потом он выключается после команды. Нельзя ли так сделать, чтобы он работал постоянно? Да, есть джамперы, гусь его знает для чего они нужны(
Для включения шилда можно на соответствующий пин подать на пару секунд HIGH, А выключается после команды, там случайно не затесалось выключение?
Джампы на шилде нужны для выставления rx-tx пинов при использовании softwareserial. Вот в этой ветке где-то в серидине или конце есть про скетч и команду отключения шилда,почитай: http://forum.amperka.ru/threads/Управление-отоплением-в-загородном-доме-gsm.999/
#include <SoftwareSerial.h> SoftwareSerial gprsSerial(7, 8); int pin = 0; int temp = 0; void setup() { pinMode(temp, INPUT); pinMode(pin, INPUT); gprsSerial.begin(19200); delay(500); } void loop() { temp = analogRead(pin); delay(150); sendTextMessage(); delay(40000); } /* * Функция отправки SMS-сообщения */ void sendTextMessage() { // Устанавливает текстовый режим для SMS-сообщений gprsSerial.print("AT+CMGF=1\r"); delay(150); // даём время на усваивание команды // Устанавливаем адресата: телефонный номер в международном формате gprsSerial.println("AT + CMGS = \"+79*****\""); delay(150); // Пишем текст сообщения gprsSerial.print("temp:"); gprsSerial.println(temp); delay(150); // Отправляем Ctrl+Z, обозначая, что сообщение готово gprsSerial.println((char)26); } Да вроде нету. А как найти пин, на который нужно подавать напряжение?
Не нашёл нужного. бп выдаёт 2А 5 В. Больше мне кажется ему точно не нужно. И как-то работает он странно. Допустим, я одновременно подключу его к сети и включу шилд с помощью кнопки. Тогда сообщение отправляется нормально, но после он потухает и приходится снова жать на вкл. Как там в скетче был выбран именно 6 пин для подачи сигнала, я не знаю
Блин, слушайте, у меня теперь сим карта вообще не работает. Её не ард. не телефон не видит. Мог ли он её спалить?
Всё, восстановил на новую, спасибо мегафону. Я похоже что-то не так в коде сделал: увидел, что при подаче сигнала на 9 пин шилд включается сам, без помощи кнопки, ну и внёс одну команду в setup digitalWrite(gprspin,HIGH). Как думаете, из-за этого сим карта была очень долго под напряжением?
Не получается. int buttonPin = 12; // номер входа, подключенный к кнопке int power = 9 ; // подача питания пин 9 void setup (){ // инициализируем пин, подключенный к кнопке, как вход // пин 9 для включения шилда pinMode(buttonPin, INPUT); pinMode(power, OUTPUT); digitalWrite(power,HIGH); //подали питание delay(1000); //на 1 сек digitalWrite(power,LOW); //сняли питание delay(1000); //на 1 сек Serial.begin(9600); Serial.println("AT+CMGF=1\r"); // выставляем текстовым режим сообщений один раз delay(500); } void loop (){ // считываем значения с входа кнопки если разомкнута if (digitalRead(buttonPin) == HIGH){ delay(300); Serial.print("AT+CMGS="); // отправляем смс Serial.print((char)34); Serial.print("8*********"); // номер получателя Serial.print((char)34); // символ кавычки " Serial.print((char)13); // символ <cr> (ASCII character 13) delay(300); Serial.print("preved medved!"); // текст смс delay(300); Serial.print((char)26); // символ <ctrl-z> (ASCII character 26) delay(10000); } } В чём подвох?СМС отправляет но включается только вручную
Ну для начала после двух секунд 9 пин надо выставить в LOW. Да и вообще должно быть так digitalWrite ( power, HIGH); Ну а здесь написано как программно включать http://forum.amperka.ru/threads/Программное-включение-питания-gprs-shield-v1-0.2576/
Да точно так.Исправил digitalWrite ( power, LOW);delay(2000);( power, HIGH);delay(2000);Всё равно не идёт.Там http://forum.amperka.ru/threads/Программное-включение-питания-gprs-shield-v1-0.2576/ написано тупо замкнуть выводы кнопки включения шилда так?Но это же не наш метод?
digitalWrite ( power, HIGH); delay (1000); digitalWrite ( power, LOW); Покрайней мере я делал так. Только я работал не с шилдом а отдельно gsm модулем. Нет, не так. Нужно спаять вместе два контакта которые имеються на шилде, к кнопке они ни какое отношение не имеют, тогда будет доступно программное включение.
Всё сделал!Всё работает!Дело было в этой самой перемычке.Скетч рабочий-включает отправляет СМС!Спасибо огромное!
Так, а теперь не могли бы вы мне помочь, что с кодом не так-то и что надо делать? Пожалуйстаааа. И да, не забывайте, что я использую 2 версию шилда
В смысле что с кодом?У Вас несколько ошибок Что такое temp? Что такое pin?Почему им присвоены одинаковые значения?Нет условия при котором идёт отправка СМС if(тратата тратата) Что такое temp = analogRead(pin); Носом чую что temp-это из Ассемблера?Сравните с моим Скетчем и поймёте где и что.
Код (Text): int buttonPin = 12; // номер входа, подключенный к кнопке int power = 9 ; // подача питания пин 9 void setup (){ // инициализируем пин, подключенный к кнопке, как вход // пин 9 для включения шилда pinMode(buttonPin, INPUT); pinMode(power, OUTPUT); digitalWrite(power,HIGH); //подали питание delay(1000); //на 1 сек digitalWrite(power,LOW); //сняли питание delay(1000); //на 1 сек Serial.begin(9600); Serial.println("AT+CMGF=1\r"); // выставляем текстовым режим сообщений один раз delay(500); } void loop (){ // считываем значения с входа кнопки если разомкнута if (digitalRead(buttonPin) == HIGH){ delay(300); Serial.print("AT+CMGS="); // отправляем смс Serial.print((char)34); Serial.print("8*********"); // номер получателя Serial.print((char)34); // символ кавычки " Serial.print((char)13); // символ <cr> (ASCII character 13) delay(300); Serial.print("preved medved!"); // текст смс delay(300); Serial.print((char)26); // символ <ctrl-z> (ASCII character 26) delay(10000); } } Скетч я понял, а он всё равно не включает автоматические шилд?
Спасибо большое alexxx86, а после пайки контактов шилд будет работать всё время, или только во во время отправки смс? И ещё одно, во тот скетч, что выше, он подойдёт для программного включения шилда, или нужно менять?