помогите новичку ШИМ -led

tiger63rus
Offline
Зарегистрирован: 19.11.2021

Добрый!

сам не справился прошу вашей помощи!

есть необходимость собрать контроллер для управления 6ю светодиодами (уменьшать яркость)

управление через синий зуб с телефона.

програмулину на телефоне собрал (там ползунки меняется значение 0-255)

и так на каждом из 6 каналов.

но вот как заставить ардуну менять значения не на одном на разных пинах? я не осилил...

понимаю что надо для каждого цвета кроме 0-255 отправить еще что то, но в мониторе порта все это отправляется второй строкой и значения не меняются. 

подскажите плиз как правильно сделать?

b707
Offline
Зарегистрирован: 26.05.2017

если хотите научится сами - давайте схему и код (код вставлять в форум ПРАВИЛЬНО)

если хотите просто получить готовое - в раздел Ищу исполнителя, за небольшую плату соберут

tiger63rus
Offline
Зарегистрирован: 19.11.2021

я хочу сам разобраться- готовых решений полно! я сам хочу понять!

не думаю что схема особо важна 

постараюсь описать чтоб не рисовать...

Arduino nano (328)

пины для управления шим (0-5в): 3,5,6,9,10,11

светодиоды запитаны через драйверы.

естественно подключен блютус.

код я на данном этапе использовал из стандартных и пытался как мог его подогнать под себя- но увы...


const int ledPin = 10;      // the pin that the LED is attached to
unsigned long brightness = 0;  // для хранения полученного байта

void setup() {
  
  Serial.begin(9600);
  
  pinMode(ledPin, OUTPUT);
}

void loop() {
  byte brightness;


  if (Serial.available()) {
  
    brightness = Serial.read();
   
    analogWrite(ledPin, brightness);
    Serial.print("получено: ");
    Serial.println(brightness, DEC);
  }
}

тут только 1 пин (10) монитор порта читает все ползунки как 0-255.

и соответственно меняется только один порт от любых движений!

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

А что передаёте на ардуино ?

rkit
Offline
Зарегистрирован: 23.11.2016

tiger63rus пишет:

не думаю что схема особо важна 

не думаю, что твои проблемы особо важны

tiger63rus
Offline
Зарегистрирован: 19.11.2021

ну для меня этот вопрос очень не простой.... так как я делал приложение так же по урокам - и тыкался в темноте.

предположу что моя программа отправляет: Send1ByteNumber"Декодирует заданное число String в целое число и записывает его как один байт в выходной поток."

по крайней мере я в мониторе порта вижу значения положения ползунка.

и на 10 пине получаю 5в.

если я выбираю: Send2ByteNumber -"Декодирует заданное число String в целое число и записывает его как два байта в выходной поток."

то в мониторе порта я вижу положение ползунка и вторую строку ="0" и соответственно ничего не меняется на 10 пине! так как "0"

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

tiger63rus пишет:

не думаю что схема особо важна 

Ну, на нет и суда нет. Разбирайтесь сами.

tiger63rus
Offline
Зарегистрирован: 19.11.2021

Спасибо. Я тут новенький в этой теме... и только еще делаю первые шаги.

А вот в теме нахамить я уже далеко не ребенок. Однако мне не хочется демонстрировать тут этот навык!

Возможно для вас я и сделаю исключение. Но не сейчас... 

Надеюсь все же дождаться умных и добрых людей! К сожалению персон с вашей аватарки хватает в любом обществе.

sadman41
Offline
Зарегистрирован: 19.10.2016

Колхозным способом так: с инвентора шлете например 'A' и сразу же байт-значение ШИМ ("яркость"). На ардуине в переменную читаете символ и следом сразу байт "яркость". Потом анализируете - символ равен 'A'? Если да, то на выводе 3 ставите значение яркости. Если 'B', то на выводе 5 и т.д.

Иногда это будет работать.

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Вы уверены что принимаете данные именно от блютуз ???

tiger63rus
Offline
Зарегистрирован: 19.11.2021

да. так как я двигаю ползунок на телефоне - вижу значение- и это значение вижу в мониторе порта.

tiger63rus
Offline
Зарегистрирован: 19.11.2021

sadman41 пишет:

Колхозным способом так: с инвентора шлете например 'A' и сразу же байт-значение ШИМ ("яркость"). На ардуине в переменную читаете символ и следом сразу байт "яркость". Потом анализируете - символ равен 'A'? Если да, то на выводе 3 ставите значение яркости. Если 'B', то на выводе 5 и т.д.

Иногда это будет работать.

Правильно ли я понимаю что должен послать на каждый "ПИН" 2 сообщения - условно это кодовое имя цвета и второе сообщение это 0-255.

Думаю я это осилю... - колхоз

А если не колхоз? 

управление цветом ползунками это так сказать только начало - надо будет еще несколько функций... но для начала мне бы научиться просто менять яркость на каждом канале

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

tiger63rus пишет:

sadman41 пишет:

Колхозным способом так: с инвентора шлете например 'A' и сразу же байт-значение ШИМ ("яркость"). На ардуине в переменную читаете символ и следом сразу байт "яркость". Потом анализируете - символ равен 'A'? Если да, то на выводе 3 ставите значение яркости. Если 'B', то на выводе 5 и т.д.

Иногда это будет работать.

Правильно ли я понимаю что должен послать на каждый "ПИН" 2 сообщения - условно это кодовое имя цвета и второе сообщение это 0-255.

Думаю я это осилю... - колхоз

А если не колхоз? 

управление цветом ползунками это так сказать только начало - надо будет еще несколько функций... но для начала мне бы научиться просто менять яркость на каждом канале

ну а если не колхоз берём какой-нибудь протокол радиоуправления, IBUS, SBUS, PPM к примеру )))

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Коллеги!

Первое: Я настоятельно прошу прекратить обсуждение без схемы и кода. Мы сами пишем правила не для того, чтобы новички их игнорили!

Второе: Детские вопросы - в Песочнице, мы это тоже сами установили и снова поощряем засирание темы "Программирование"?

tiger63rus
Offline
Зарегистрирован: 19.11.2021

ua6em пишет:

tiger63rus пишет:

sadman41 пишет:

Колхозным способом так: с инвентора шлете например 'A' и сразу же байт-значение ШИМ ("яркость"). На ардуине в переменную читаете символ и следом сразу байт "яркость". Потом анализируете - символ равен 'A'? Если да, то на выводе 3 ставите значение яркости. Если 'B', то на выводе 5 и т.д.

Иногда это будет работать.

Правильно ли я понимаю что должен послать на каждый "ПИН" 2 сообщения - условно это кодовое имя цвета и второе сообщение это 0-255.

Думаю я это осилю... - колхоз

А если не колхоз? 

управление цветом ползунками это так сказать только начало - надо будет еще несколько функций... но для начала мне бы научиться просто менять яркость на каждом канале

ну а если не колхоз берём какой-нибудь протокол радиоуправления, IBUS, SBUS, PPM к примеру )))

намек понял....мне в колхоз....

не подскажите как правильно сказать пину "10" что если в порт пришло "65" (указал в приложении отравить текст "A") а следом "230" что соответствует положению ползунка для цвета 1
а вот пину "9" что если в порт пришло "66" (указал в приложении отравить текст "B") а следом "200" что соответствует положению ползунка для цвета 2?

tiger63rus
Offline
Зарегистрирован: 19.11.2021

wdrakula пишет:

Коллеги!

Первое: Я настоятельно прошу прекратить обсуждение без схемы и кода. Мы сами пишем правила не для того, чтобы новички их игнорили!

Второе: Детские вопросы - в Песочнице, мы это тоже сами установили и снова поощряем засирание темы "Программирование"?

Арошу прощения что нарушил правила.

Но для данного вопроса схеме не нужна! Тут нет кучи датчиков от которых что то зависит и правильность подключения и прочего. Нет дисплея... 
Поэтому я нарушил правило чертить схему...
Ну а про песочницу каюсь- не знал- искал в сет нужную мне инфу- наткнулся на тему похожую- увидел раздел форума... тут и создал свою тему! Если это принципиально и есть тех возможность перенести в правильны раздел форума. Буду только рад.

Не все мы переходим улицу в указанных местах!!!

kalapanga
Offline
Зарегистрирован: 23.10.2016

tiger63rus, поищите здесь на форуме или в интернете вообще что-нибудь про "парсинг значений поступающих из ком-порта", "парсинг команд ...". Один байт Вы посылаете и принимаете. Теперь нужно научиться отсылать, принимать и разбирать несколько значений за раз. Примеров много, логично что пересказывать их никому не охота. (На примеры идущие с Arduino IDE тоже стоит посмотреть)

tiger63rus
Offline
Зарегистрирован: 19.11.2021

kalapanga пишет:

tiger63rus, поищите здесь на форуме или в интернете вообще что-нибудь про "парсинг значений поступающих из ком-порта", "парсинг команд ...". Один байт Вы посылаете и принимаете. Теперь нужно научиться отсылать, принимать и разбирать несколько значений за раз. Примеров много, логично что пересказывать их никому не охота. (На примеры идущие с Arduino IDE тоже стоит посмотреть)

спасибо. буду искать- но задам еще один вопрос: я отправляю с телефона по блютусу "А" а в порт приходит "65"
как заставить в порт приходить буквы? ведь если будет в диапазоне яркости 0-255 значение "65" но у другого канала (скажем у "D") все будет работать криво...

Upper
Offline
Зарегистрирован: 23.06.2020

tiger63rus пишет:

намек понял....мне в колхоз....

Если вы в последствии собираетесь отправлять по serial команды не только для светодиодов, то самодельный вариант (а это тоже протокол обмена) может сильно усложниться и стать запутанным.

sadman41
Offline
Зарегистрирован: 19.10.2016

'A' - это и есть DEC 65. См. ASCII Table.

tiger63rus
Offline
Зарегистрирован: 19.11.2021

sadman41 пишет:
'A' - это и есть DEC 65. См. ASCII Table.

это я понял! вопрос в другом.

буковки как в порт послать? не цыфирки.... раз уж я уровня песочницы...

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

шлите цифрами 65 66 67, только как вы поймете это уровень яркости 65 или канал 65

Я бы слал 01 02 03 04 - 10 для каналов и 00, 11, 12, 13 ...255 яркость

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

tiger63rus пишет:

sadman41 пишет:
'A' - это и есть DEC 65. См. ASCII Table.

это я понял! вопрос в другом.

буковки как в порт послать? не цыфирки.... раз уж я уровня песочницы...

Буковки - это графические символы, предназначенные для отображения на бумаге или на экране специально для визуального восприятия человеком. В компьютере (микроконтроллере) никаких буковок нет, есть только байты, т.е. цифры, которыми эти буквы кодируются. Соответственно в порт посылаются не сами буквы, а их байт-коды, что и наблюдается в мониторе порта. Можно а) преобразовывать эти коды в буквы (накуа. если их все равно обрабатывает МК, который глаз не имеет) или б) работать напрямую со значениями байтов

tiger63rus
Offline
Зарегистрирован: 19.11.2021

v258 пишет:

tiger63rus пишет:

sadman41 пишет:
'A' - это и есть DEC 65. См. ASCII Table.

это я понял! вопрос в другом.

буковки как в порт послать? не цыфирки.... раз уж я уровня песочницы...

Буковки - это графические символы, предназначенные для отображения на бумаге или на экране специально для визуального восприятия человеком. В компьютере (микроконтроллере) никаких буковок нет, есть только байты, т.е. цифры, которыми эти буквы кодируются. Соответственно в порт посылаются не сами буквы, а их байт-коды, что и наблюдается в мониторе порта. Можно а) преобразовывать эти коды в буквы (накуа. если их все равно обрабатывает МК, который глаз не имеет) или б) работать напрямую со значениями байтов

Хорошо. может я не понимаю чего.

я написал условие: если прилетает "а" то мы меняем значение пина 10
если прилетает "b" значение пина 9 и тд... и вот как мне сказать ардуине что я послал "а" - если я его посылаю а прилетает его цифровой аналог!

 

sadman41
Offline
Зарегистрирован: 19.10.2016

'A' экивалентно 65. В условии можно писать хоть то, хоть это.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

wdrakula пишет:

Я настоятельно прошу прекратить ...

Глас вопиющего. Тут любят тереть шары, а потом материться. что всем форумом три дня трахались, а оказалось, что ТС с ресета читает.

Green
Offline
Зарегистрирован: 01.10.2015

Ну так языки то чешутся... Аж удержаться невозможно.(

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

tiger63rus пишет:

Хорошо. может я не понимаю чего.

я написал условие: если прилетает "а" то мы меняем значение пина 10
если прилетает "b" значение пина 9 и тд... и вот как мне сказать ардуине что я послал "а" - если я его посылаю а прилетает его цифровой аналог!

если прилетает 65 то мы меняем значение пина 10, если прилетает 66 значение пина 9 и тд...

Upper
Offline
Зарегистрирован: 23.06.2020

tiger63rus пишет:

 и вот как мне сказать ардуине что я послал "а" - если я его посылаю а прилетает его цифровой аналог!

Вариант - посылайте все текстом, тогда буквы - определяют номера пинов, а цифры после букв составляют строку - число величину яркости. Соответственно буквы являются разделителями "пакетов" в этом самодельном "протоколе".

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

tiger63rus пишет:

буковки как в порт послать? не цыфирки.... раз уж я уровня песочницы...

Компьютер никак не отличает "буковки" от "циферок", для него это абсолютно одно и то же.

А чтобы человек мог в удобной ему форме понимать, что выдает компьютер, придумали разные типы данных.

Прочтите же, наконец, учебник!

tiger63rus
Offline
Зарегистрирован: 19.11.2021

Upper пишет:

tiger63rus пишет:

 и вот как мне сказать ардуине что я послал "а" - если я его посылаю а прилетает его цифровой аналог!

Вариант - посылайте все текстом, тогда буквы - определяют номера пинов, а цифры после букв составляют строку - число величину яркости. Соответственно буквы являются разделителями "пакетов" в этом самодельном "протоколе".

вот в этом месте видимо у меня и проблема... я не могу заставить послать текст.

так как готовый скетч который я вроде как переделал уже меняет все нужные значения если их вводить  с клавиатуры в порт. по блютусу так не пролетает!


void setup() {
 Serial.begin(9600);
 Serial.setTimeout(5);
 pinMode(3, OUTPUT);
 pinMode(5, OUTPUT);
 pinMode(6, OUTPUT);
 pinMode(9, OUTPUT);
 pinMode(10, OUTPUT);
 pinMode(11, OUTPUT);
}

void loop() {
  if (Serial.available()>1){
    char var = Serial.read();
    int val = Serial.parseInt();
    switch (var) {
      case 'a': analogWrite(3,val);
      case 'b': analogWrite(5,val);
      case 'c': analogWrite(6,val);
      case 'd': analogWrite(9,val);
      case 'e': analogWrite(10,val);
      case 'f': analogWrite(11,val);
      break;
  
  }
  }
  }

 

sadman41
Offline
Зарегистрирован: 19.10.2016

SendText(text)
Converts the given text to bytes and writes them to the output stream.

Свич написан так, что работать будет криво. Читайте про break внимательней.

tiger63rus
Offline
Зарегистрирован: 19.11.2021

sadman41 пишет:
SendText(text) Converts the given text to bytes and writes them to the output stream. Свич написан так, что работать будет криво. Читайте про break внимательней.

SendText(text)  это где? в приложении? так оно и стоит... и переводит букф в цыфр.

 

а в чем кривизна? я опять же делаю по тому что нахожу... сильный пробел у меня в программировании... но я не сдаюсь и хочу заполнить этот пробел.

sadman41
Offline
Зарегистрирован: 19.10.2016

Какая в итоге строка прилетает из блютуса?

tiger63rus
Offline
Зарегистрирован: 19.11.2021

sadman41 пишет:
Какая в итоге строка прилетает из блютуса?

две строки

65

255

если ползунок в край

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

Казалось бы - все, что нужно, на этом сайте есть, нужно только зайти и почитать ))

http://arduino.ru/Reference/SwitchCase

[qoute]

Ключевое слово break является командой выхода из оператора case и обычно используется в конце каждого case. Без оператора break оператор switch будет продолжать вычислять  следующие выражения, пока не достигнет break или конец оператора switch 

switch (var) {
    case 1:
      //выполняется, когда var равно 1
      break;
    case 2:
      //выполняется когда  var равно 2
      break;
    default:
      // выполняется, если не выбрана ни одна альтернатива
      // default необязателен
  }

[/quote]

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

tiger63rus пишет:

sadman41 пишет:
Какая в итоге строка прилетает из блютуса?

две строки

65

255

если ползунок в край

Ну так и пиши в кейсе вместо 'a' 65

tiger63rus
Offline
Зарегистрирован: 19.11.2021

v258 пишет:

Казалось бы - все, что нужно, на этом сайте есть, нужно только зайти и почитать ))

http://arduino.ru/Reference/SwitchCase

[qoute]

Ключевое слово break является командой выхода из оператора case и обычно используется в конце каждого case. Без оператора break оператор switch будет продолжать вычислять  следующие выражения, пока не достигнет break или конец оператора switch 

switch (var) {
    case 1:
      //выполняется, когда var равно 1
      break;
    case 2:
      //выполняется когда  var равно 2
      break;
    default:
      // выполняется, если не выбрана ни одна альтернатива
      // default необязателен
  }

[/qute]

я и не спорю.... но поиск выводит по запросу "уроки ардуино....." много всякий важных людей- с крутыми каналами уроками всего и вся.... и как то верится что та все правильно! урок жеж.... а там вон оно как...

sadman41
Offline
Зарегистрирован: 19.10.2016

tiger63rus пишет:

sadman41 пишет:
Какая в итоге строка прилетает из блютуса?

две строки

65

255

если ползунок в край

ParseInt разбирает строку символов "123", а не байт со значением 123. Вам нужно хорошо понять отличие между символом и числом.

tiger63rus
Offline
Зарегистрирован: 19.11.2021

v258 пишет:

tiger63rus пишет:

sadman41 пишет:
Какая в итоге строка прилетает из блютуса?

две строки

65

255

если ползунок в край

Ну так и пиши в кейсе вместо 'a' 65

глупо конечно... и смешно... но не выходит... и еще вопрос. а если значение ползунка будет =65! ардуина это как воспримет? как ключ "65" 

tiger63rus
Offline
Зарегистрирован: 19.11.2021

sadman41 пишет:
tiger63rus пишет:

sadman41 пишет:
Какая в итоге строка прилетает из блютуса?

две строки

65

255

если ползунок в край

ParseInt разбирает строку символов "123", а не байт со значением 123. Вам нужно хорошо понять отличие между символом и числом.

если не сложно ткните носом где почитать... я уже столько всего начитался-голова пухнет- месяц собираю этот светильник...

sadman41
Offline
Зарегистрирован: 19.10.2016

Почитать любой учебник по языку Си.
Но сейчас лучше просто заменить parseInt() на второй read()

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

v258 пишет:

tiger63rus пишет:

sadman41 пишет:
Какая в итоге строка прилетает из блютуса?

две строки

65

255

если ползунок в край

Ну так и пиши в кейсе вместо 'a' 65

а зачем? 'A' удобнее жеж

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

А и а - большая разница для компа !!!

sadman41
Offline
Зарегистрирован: 19.10.2016

...или Send1ByteNumber на SendText. Может и прокатит. Я инвентора не знаю - позволяет ли он такие фокусы с конвертацией типов.

sadman41
Offline
Зарегистрирован: 19.10.2016

Komandir пишет:

А и а - большая разница для компа !!!


Командир прав 'a' <> 'A'. Аски-код другой. Свич не словит.

lilik
Offline
Зарегистрирован: 19.10.2017
/////////////////// ТЕСТ для ленты ws2812b с помощью приложения на ПК ////////////////////// 
// Подключаем библиотеку Adafruit NeoPixel.
#include "Adafruit_NeoPixel.h"
// Указываем, какое количество пикселей у нашей ленты.
#define LED_COUNT1 10
// Указываем, к какому порту подключен вход ленты DIN.
#define LED_PIN1 6
Adafruit_NeoPixel strip1 = Adafruit_NeoPixel(LED_COUNT1, LED_PIN1, NEO_RGB + NEO_KHZ400);// Создаем переменную strip для управления нашей лентой. 

String inputString;// строки данных
long Y=0;//переменная хранения моментов времени
int pos = 0;//переменная хранения текущего значения полученных данных
int i=0;//счётчик
long CVET=0;//переменная хранения запрашиваемого цвета пикселя
long CVET_=0;//переменная хранения запрашиваемого цвета крайнего пикселя
bool fl_=false;
int r=0;int g=0; int b=0; int n=0;//переменные хранения параметров включений пикселей


void setup()
{
  Serial.begin(9600);
  strip1.begin();
 for(i=0;i<LED_COUNT1;i++)
 {
  strip1.setPixelColor(i,0,0,0);//
  }strip1.show();
 }

void loop()
{
 CheckSerial();//ЖДЁМ ПОСТУПЛЕНИЯ КОМАНДЫ 

}
//////////////////////////////////////////////////////////////////////////////////
 ////  ФУНКЦИИ ОПИСАНИЕ // вместо задержки времени через delay  ////////////////////////////////////////
void delay_(int T1)
{
 Y=millis();
 while(millis()-Y<T1) 
  {
     //CheckSerial();//ЖДЁМ ПОСТУПЛЕНИЯ КОМАНДЫ 
   }
}
 ////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////////////////////////
//ФУНКЦИИ ПРИЁМА И ОБРАБОТКИ ДАННЫХ
void CheckSerial()
{
  //////////////////////////////////////////////////////////////////////////////
  while (Serial.available())//считываем строку данных пока они поступают
  {
    char inChar = (char)Serial.read();
    if (inChar == '\n')     //если окончание строки
    {
      MakeCmd();//обрабатываем её данной функцией
      break;
    }
    else inputString += inChar;// иначе удлиняем строку на один символ
  }
}
/////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////
void MakeCmd()
{
  int y = inputString.length(); // присваиваем переменной у число символов в строке
  if (y < 1 || y > 3)return; //если их меньше 1 или больше 3, выходим из функции
  String cmd = inputString; // передаём строку другой переменной
  inputString = "";//"обнуляем переменную"

  
  pos=cmd.toInt();//преобразовать строку в число
  if(pos==951){fl_=true;}//если в приложении включили пиксель...
  if(fl_==true){strip1.setPixelColor(n,r,g,b);strip1.show();}//включение пикселя по текущим данным
  if(pos==950){fl_=false;}//если в приложении выключили пиксель...
  if(pos>=768&&pos<=777){n=pos-768;}//обновляем значение номера пикселя
  if(pos>=0&&pos<=255){r=pos;}//обновляем значение красной составляющей цвета
  if(pos>=256&&pos<=511){g=pos-256;}//обновляем значение зелёной составляющей цвета
  if(pos>=512&&pos<=767){b=pos-512;}//обновляем значение синей составляющей цвета
  if(pos==952){ for(i=0;i<LED_COUNT1;i++)//сдвиг на один пиксель по кнопке
 {
  CVET=strip1.getPixelColor(i);//определяем цвет пикселя...
  if(i-1==-1){CVET_=strip1.getPixelColor(LED_COUNT1-1);strip1.setPixelColor(LED_COUNT1-1,CVET);}//условие закольцовки сдвига пикселей
  else{if(i==LED_COUNT1-1){strip1.setPixelColor(i-1,CVET_);}else{strip1.setPixelColor(i-1,CVET);}}//...записываем его в предыдущий
  }strip1.show();}//обновляем ленту
 }

Автор темы, вот вам пример от меня. Обратите внимание как числами можно строить протокол передачи данных. Сам уже не помню как работает :-)

lilik
Offline
Зарегистрирован: 19.10.2017

Обратите внимание также на необходимость присутствия символа окончания строки в своём приложении к каждой команде типа "А".

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

tiger63rus пишет:

и еще вопрос. а если значение ползунка будет =65! ардуина это как воспримет? как ключ "65" 

Первая строка - ключ, вторая строка - значение. В таком порядке и разбирать. А ардуина воспримет ровно так, как ты ей пропишешь

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

sadman41 пишет:
Komandir пишет:

А и а - большая разница для компа !!!

Командир прав 'a' <> 'A'. Аски-код другой. Свич не словит.

так у 'A' как раз 65 код, я буковку на клаве кодом набирал )))

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

tiger63rus пишет:

я и не спорю.... но поиск выводит по запросу "уроки ардуино....." много всякий важных людей- с крутыми каналами уроками всего и вся.... и как то верится что та все правильно! урок жеж.... а там вон оно как...

Так Вы неправильную строку запроса вводите, поэтому и получаете всякую чушь.

Искать нужно не "уроки по Ардуино", а "учебник по Си/Си++".