Клуб DiyAudio

Разное и полезное => Микроконтроллеры и их программирование => Тема начата: WolfTheGrey от 27 Февраля 2020, 04:19:26

Название: общие вопросы поarduino
Отправлено: WolfTheGrey от 27 Февраля 2020, 04:19:26
Доброго дня. Решил потыкать палочкой в данную среду разработки.
Для начала хочу разобраться с терминалом.
Написал простенький код : принять массив данных в веденные в терминал в битах, и через некоторое время их вывести на экран терминала.
Только не в битах, не в любом другом виде... На терминал приходит какая то белиберда.

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])
            );
    }
}
Название: Re: общие вопросы поarduino
Отправлено: WolfTheGrey от 28 Февраля 2020, 06:00:39
Хорошая статья о Serial Monitor. Вопрос решен:
http://developer.alexanderklimov.ru/arduino/serialmonitor.php
Название: Re: общие вопросы поarduino
Отправлено: lgedmitry от 28 Февраля 2020, 07:04:42
вот сколько живу, ни разу сериалмонитором не воспользовался. Пока прокатывает и так)))
Название: Re: общие вопросы поarduino
Отправлено: WolfTheGrey от 28 Февраля 2020, 07:35:06
нет, не решен: имея строчку Serial.read() -'0';  получаем из буфера по одному символу, и обратно в монитор приходит написанное. однако оператор if else не распознает данные.
Если по старинке принимать данные из буфера Serial.read(), то оператор if else  распознает написанное, реагирует на числа, зажигает светодиоды... А обратно в монитор Serial.print() приходит ерунда.
Закономерность отправил 0 - пришло 49, 1 - 50, 2 - 51....

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

sudosu  :drink:
Название: Re: общие вопросы поarduino
Отправлено: kkol от 28 Февраля 2020, 07:51:59
Хочу ручками тыкать команды, и видеть что произошло. Так информативнее. Допустим отправил команду по i2c на ЦАП переконфигурировать настройки. Как узнать ответ от ЦАП? простым способом, не подключая мониторы там, экраны...


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

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

Error 404 (Not Found)!!1 (http://www.youtube.com/watch?v=P6LLTDWHMf8#)

[attachment=1]
Название: Re: общие вопросы поarduino
Отправлено: Илья_C от 28 Февраля 2020, 08:14:42
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);
}