неа, не работает это((( помима этого я перебрал скетчей 20 для отправки смс или звонка, результат - 0 (((((
неа, не работает это((( помима этого я перебрал скетчей 20 для отправки смс или звонка, результат - 0 (((((
Может в твоем скетче этого не хватает gsm.print(10,BYTE); перед задержкой?
Про newsoftserial....
Вот такое не работает,PHP код:
#include <NewSoftSerial.h> //Include the NewSoftSerial library to send serial commands to the cellular module.
#include <string.h> //Used for string manipulations
char incoming_char=0; //Will hold the incoming character from the Serial Port.
NewSoftSerial cell(2,3); //Create a 'fake' serial port. Pin 2 is the Rx pin, pin 3 is the Tx pin.
void setup()
{
//Initialize serial ports for communication.
Serial.begin(9600);
cell.begin(9600);
//Let's get started!
Serial.println("Starting SM5100B Communication...");
}
void loop() {
//If a character comes in from the cellular module...
if(cell.available() >0)
{
incoming_char=cell.read(); //Get the character from the cellular serial port.
Serial.print(incoming_char); //Print the incoming character to the terminal.
}
//If a character is coming from the terminal to the Arduino...
if(Serial.available() >0)
{
incoming_char=Serial.read(); //Get the character coming from the terminal
cell.print(incoming_char); //Send the character to the cellular module.
}
}
если взять скетч Chipa,
через терминал все ок, пробовал скетч написать, который бы слал в шилд данные, а ответы в серийный порт - там белеберда отображается.. то квадраты, то еще чегоPHP код:
uint8_t ETX_Pin=3;
uint8_t ERX_Pin=2;
void setup()
{
pinMode(0, INPUT);
pinMode(1, OUTPUT);
pinMode(ETX_Pin, INPUT);
pinMode(ERX_Pin, OUTPUT);
}
void loop()
{
int pc2vrbot = digitalRead(0);
digitalWrite(ERX_Pin, pc2vrbot);
int vrbot2pc = digitalRead(ETX_Pin);
digitalWrite(1, vrbot2pc);
}
Вообще, простейший скетч - отображение символов вводимых склавиатуры(ардуина засылает обратно символ или цифру, которую ввели с клавы) - работает прекрасно, когда пытаюсь параллелить на строковый монитор - на мониторе единицы(1), в терминал-ахинея(((
С++ последний раз трогал 5 лет назад, после этого только на php писал.
Общение с железом требует выдержки и терпения((((
Хммм, может кто в двух словах рассказать в каком виде данные передаются и принимаются между железяками??
Ну не знаю, из символа преобразуется в его код, и так далее....
Я к тому, что вот на такое ардуина матерится:
а вот на такое нет:PHP код:
digitalWrite(RX, "AT");
если таким способом передали "строку", то надо нажать ЕНТЕР, чтобы шилд ее начал обрабатывать. Наверное единственный способ -PHP код:
digitalWrite(RX, 'AT');
на что шилд молчит....PHP код:
digitalWrite(RX, 13);
Как вообще засылать туда и символы, и коды клавиш, а также принимать обратно и смотреть в нормальном виде?
В сообщении за N13 первый скетч должен работать при правильном подключении устройств - адруина принимает данные из терминала и отправляет их в newserialport, а так же принимает данные от newserialport и отправляет в терминал
Но судя по второму скетчу твоя ошибка в том, что ERX_Pin у тебя output, хотя должен быть input, потому как это приём данных от другого устройства. Аналогично ETX_Pin. Исходя из этой ошибки советую почитать теорию
И схему подключения к адруино покажи
Т. е. Для прямого взаимодействия Rx адруины нужно настроить как вход и подключить к Tx железяки, Tx адруины -выход - Rx железяки
Для первого скетча из сообщения 13
Rx_adruino --- Tx_PC
Tx_adruino --- Rx_PC
Newserial_pin2 (Rx, input) --- Tx_gsm
Newserial_pin3 (Tx, output) --- Rx_gsm
Вроде так
Скачай LGComSpy - бесплатный монитор COM-порта, т. е. порт открываешь терминалом, а в ней тоже смотришь, чтотпришло, только там есть различные виды отображения - ASCII, hex и т.д. Но работает она только с COM1, поэтому если у тебя он не 1, нужно его переименовать
Последний раз редактировалось Gorynch; 23.09.2011 в 00:41.
Ты бы хоть букварь почитал что-ли?
Здесь можно почитать в чем разница между Write и Print применительно к Serial. Подозреваю что для NewSoftSerial аналогично
Попробуй так:
PHP код:
#include <NewSoftSerial.h>
NewSoftSerial gsm(2,3);
void setup()
{
gsm.begin(9600);
gsm.print('atd');
gsm.print(34,BYTE); // символ "
gsm.print('+79121234565');
gsm.print(34,BYTE); // символ "
gsm.println(';');
}
void loop()
{
}
Последний раз редактировалось zhserg; 23.09.2011 в 07:33.
не работает
Думаю это тебе поможет.
Такой вопрос: пробую скетч Fade из экзамплов... Там одна функция analogWrite(...) Не даёт на 9 ноге 168й ардуины плвное изменение яркости светодиода. При значениях 0-127 светит "на полную", при 128-255 полностью потушен. Что за проблем?
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)