Автор Тема: общие вопросы поarduino  (Прочитано 2242 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн WolfTheGrey

  • Старожил
  • *****
  • Сообщений: 2120
  • Репутация: 6
  • Алексей
  • Поблагодарили: +80
общие вопросы поarduino
« : 27 Февраля 2020, 04:19:26 »
0
Доброго дня. Решил потыкать палочкой в данную среду разработки.
Для начала хочу разобраться с терминалом.
Написал простенький код : принять массив данных в веденные в терминал в битах, и через некоторое время их вывести на экран терминала.
Только не в битах, не в любом другом виде... На терминал приходит какая то белиберда.

byte  incomingByte[12];   // переменная для хранения полученного байта
 int lengh = 12;
void setup() {
    Serial.begin(9600); // устанавливаем последовательное соединение
}
 
 
void loop() {
    if (Serial.available() > 0) {  //если есть доступные данные
        // считываем байт
        Serial.readBytes( incomingByte , 12 );   // тут ошибся?
delay (500);
        // отсылаем то, что получили
        Serial.print("message: ");
        Serial.println
          (
            String(incomingByte[0])
            +String(incomingByte[1])
            +String(incomingByte[2])
            +String(incomingByte[3])
            +String(incomingByte[4])
            +String(incomingByte[5])
            +String(incomingByte[6])
            +String(incomingByte[7])
            +String(incomingByte[8])
            );
    }
}

Оффлайн WolfTheGrey

  • Старожил
  • *****
  • Сообщений: 2120
  • Репутация: 6
  • Алексей
  • Поблагодарили: +80
Re: общие вопросы поarduino
« Ответ #1 : 28 Февраля 2020, 06:00:39 »
0
Хорошая статья о Serial Monitor. Вопрос решен:
http://developer.alexanderklimov.ru/arduino/serialmonitor.php

Оффлайн lgedmitry

  • Старожил
  • *****
  • Сообщений: 4591
  • Репутация: 29
  • Сергей, Рыбинск
  • Поблагодарили: +670
Re: общие вопросы поarduino
« Ответ #2 : 28 Февраля 2020, 07:04:42 »
0
вот сколько живу, ни разу сериалмонитором не воспользовался. Пока прокатывает и так)))

Оффлайн WolfTheGrey

  • Старожил
  • *****
  • Сообщений: 2120
  • Репутация: 6
  • Алексей
  • Поблагодарили: +80
Re: общие вопросы поarduino
« Ответ #3 : 28 Февраля 2020, 07:35:06 »
0
нет, не решен: имея строчку Serial.read() -'0';  получаем из буфера по одному символу, и обратно в монитор приходит написанное. однако оператор if else не распознает данные.
Если по старинке принимать данные из буфера Serial.read(), то оператор if else  распознает написанное, реагирует на числа, зажигает светодиоды... А обратно в монитор Serial.print() приходит ерунда.
Закономерность отправил 0 - пришло 49, 1 - 50, 2 - 51....

и добавил...
Хочу ручками тыкать команды, и видеть что произошло. Так информативнее. Допустим отправил команду по i2c на ЦАП переконфигурировать настройки. Как узнать ответ от ЦАП? простым способом, не подключая мониторы там, экраны...

sudosu  :drink:
« Последнее редактирование: 28 Февраля 2020, 07:42:24 от WolfTheGrey »

Оффлайн kkol

  • Старожил
  • *****
  • Сообщений: 833
  • Репутация: 6
  • Поблагодарили: +841
Re: общие вопросы поarduino
« Ответ #4 : 28 Февраля 2020, 07:51:59 »
0
Хочу ручками тыкать команды, и видеть что произошло. Так информативнее. Допустим отправил команду по i2c на ЦАП переконфигурировать настройки. Как узнать ответ от ЦАП? простым способом, не подключая мониторы там, экраны...


В таких случаях очень полезно иметь вот такую штуку.
Одновременно можно отслеживать несколько типов шин.

Как проверить квадратную шину можно посмотреть вот здесь.

Error 404 (Not Found)!!1


[ Вложение: Вам нельзя просматривать вложения ]

Оффлайн Илья_C

  • Знакомый
  • *
  • Сообщений: 73
  • Репутация: 1
  • Илья из Саратова
  • Поблагодарили: +14
Re: общие вопросы поarduino
« Ответ #5 : 28 Февраля 2020, 08:14:42 »
0
http://www.joyta.ru/10875-arduino-serial-posledovatelnyj-port/


Примеры использования Serial.write():

byte a[]={65,66,67,68,69};
void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.print(65); // отправляет в терминал два символа 6 и 5
Serial.write(65); // отправляет в терминал код 65 (буква A в кодировке ASCII)
Serial.write(a,3); // отправляет в терминал коды 65, 66, 67 (A, B, C)
delay(800);
}


 

Похожие темы

  Тема / Автор Ответов Последний ответ
8 Ответов
8404 Просмотров
Последний ответ 27 Октября 2010, 22:58:08
от Язычник
21 Ответов
16332 Просмотров
Последний ответ 15 Июня 2016, 23:34:29
от cu6apum
18 Ответов
13261 Просмотров
Последний ответ 15 Апреля 2011, 11:32:01
от Charm
129 Ответов
58303 Просмотров
Последний ответ 22 Февраля 2013, 17:23:05
от kompstar
75 Ответов
36846 Просмотров
Последний ответ 14 Августа 2015, 09:19:27
от smarold