Николай
че за шляпа?)))
Anonymous
здравствуйте. Друзья дайте совет. Я создал бот. при отправке команду /оn через группу включается светодиод на esp8266. а при отправке команды /on@name_bot через группе нет ни какого реакции. как сделать что бы реагировала? использовал botfather
Anonymous
В группе боты не видят сообщения, если не сделать их админами
я дал боту все права админа. Но отвечает когда /on. нет ответа когда /on@botname
Max
я дал боту все права админа. Но отвечает когда /on. нет ответа когда /on@botname
Тогда надо пологать запросы к устройству и посмотреть, что в него прилетает во втором случае.
Max
(поправил капитанскую фуражку)
w
//pins for matrix keyboard //tx - output pins, rx - input pins uint8_t tx_pins[] = {12,14,16}; uint8_t rx_pins[] = {0,4,5}; WiFiManager wifiManager; ESP8266WebServer server(80); void setup() { #ifdef SERIAL_DEBUG Serial.begin(115200); Serial.println("Booting"); #endif //pinmode for (byte i = 0; i < sizeof(tx_pins); i++) { pinMode(tx_pins[i], OUTPUT); //out mode digitalWrite(tx_pins[i], HIGH); //HIGH - default, LOW - active buttons line } for (byte i = 0; i < sizeof(rx_pins); i++) { pinMode(tx_pins[i], INPUT_PULLUP); //HIGH - default, LOW - active button } } void loop() { for (byte i = 0; i < sizeof(tx_pins); i++) { //matrix line digitalWrite(tx_pins[i], LOW); //active this line delay(50); for (byte k = 0; k < sizeof(rx_pins); k++) { //recieve ech button state in this line if(digitalRead(rx_pins[k]) == LOW) { //low - button pressed #ifdef SERIAL_DEBUG Serial.print("BTN:"); Serial.print(tx_pins[i]); Serial.print(","); Serial.println(rx_pins[k]); #endif delay(100); } } digitalWrite(tx_pins[i], HIGH); //unactive this line delay(50); } }
w
Что не так блин.. 16й пин на выход отрабатывает, 12 и 14 всегда вверх
w
я уже сменил еспху) думал пожженные, но нет
Max
Заменить цикл на инициализаию в лоб. Если заработает - подумать, что в цикле не так
Max
Ну и мешать byte и uint8_t некрасиво
w
Ну и мешать byte и uint8_t некрасиво
а, там везде было byte, это я ща сменил, но забыл в цикле. Ну и это не смешивание, счетчик то отдельно
w
прибором смотрел?
с задержкой мультиметров, осцил где то урыл в завалах. 16й меняется, 14й и 12й нифига. Пробовал 13й - тоже
w
ща в лоб допишу
w
void setup() { Serial.begin(115200); Serial.println("Booting"); pinMode(12, OUTPUT); pinMode(14, OUTPUT); pinMode(16, OUTPUT); digitalWrite(12, HIGH); digitalWrite(14, HIGH); digitalWrite(16, HIGH); pinMode(0, INPUT); pinMode(4, INPUT); pinMode(5, INPUT); } void print_serial(uint8_t out, uint8_t in) { Serial.print("BTN:"); Serial.print(out); Serial.print(","); Serial.println(in); } void check_inputs(uint8_t out_pin) { delay(50); if(digitalRead(0) == LOW) print_serial(out_pin, 0); if(digitalRead(4) == LOW) print_serial(out_pin, 4); if(digitalRead(5) == LOW) print_serial(out_pin, 5); } void loop() { // put your main code here, to run repeatedly: //stage 1 digitalWrite(12, LOW); check_inputs(12); digitalWrite(12, HIGH); //stage 2 digitalWrite(14, LOW); check_inputs(14); digitalWrite(14, HIGH); //stage 3 digitalWrite(16, LOW); check_inputs(16); digitalWrite(16, HIGH); }
w
гружу
w
ссука, работает
Max
Посмотри принтом, сколько будет sizeof(uint8_t *). Ставлю на 1.
Max
и sizeof(rx_pins)
А я что сказал?)
Evgen
А я что сказал?)
несколько другое
Max
Какой тип будет у имени массива?
Max
Хотя поинтер, должно быть 4
Max
тут sizeof на массив
На имя массива)
w
ща уберу сайзоф
w
и const массив обьявлю
Max
А, да, мой косяк. Но просто интересно, что выкинет тамошний компиллятор
Evgen
sizeof uint8_t tx_pins[] = 3 sizeof uint8_t rx_pins[3] = 3 sizeof uint8_t *ptr = 4
Evgen
это esp8266
w
тоже 8266 непомогло, счас размер посмотрим
w
может delay там увеличить
секунду ставил, 2*500
Evgen
секунду ставил, 2*500
тогда нужно бубен....
w
Serial.println(sizeof(tx_pins)) = 3
w
врод верно
Max
Значит, я был неправ
Max
Но почему в лоб работает, а в цикле хрен?
Evgen
кнопок в наличии нет, повторить не могу... а если пины поменять?
w
ну и раз на 16м работает, значит внутренний аналогичный цикл отрабатывает верно, ловит четко
w
кнопок в наличии нет, повторить не могу... а если пины поменять?
13, 15 пробовал нифига, 16й только работает, счас порядок изменю
w
я тут pullup не смог завести, тоже долбался, резисторы засадил)
Evgen
Проводочками)
6 проводочков дрыгать... ну нах
w
смена порядка пинов в массиве ничего не дает. 16й работает, остальные в хай всегда)
Evgen
я так понимаю клавиатура 3x3
w
да, но ее тоже нет, точнее распаял неверно. Просто одним проводочком тыкаю или смотрю на мультиметр, на 16м прыгает, на остальных нет
w
ладно.. буду в лоб, что ж делать)
Max
А если сделать два цикла - в одном инициализацию, в другом запись?
w
проверка инпут пинов на каждый шаг аутпут
Max
смысл? суть именно во вложенном
Не, у тебя в сетапе в одном цикле настройка и тут же установка в хай.
Max
Это в начальный код смотрю
w
Не, у тебя в сетапе в одном цикле настройка и тут же установка в хай.
ну оно явно работает, на всех пинах то 1 появляется
w
я уже грохнул то все) буду в лоб, сойдет тут скорость важна
Max
Ну добре
w
в лоб идеально пашет)
Max
Ардуина виновата (ц)
Николай
привет всем) хотелось бы сделать приложеньку для визуализации, данных с сериала. тип монитора порта, ток с своим функционалом. пробовал как делал гайвер в обучалке, на питоне... но чет скомпилть в ехе не смог, не зашел мне питон крч посоветуйте куда развиваться... пытался сделать на вебчике есп, но это чет медленно все пашет.
Max
Можно на вэбчине и вэбсокетах, будет побыстрее.
Николай
у меня крутиться луп быстро.
Николай
там тайминги жесткие, тормозить его низя
Николай
таски не предлагать, хуйня вышла
Max
Жесткие тайминги и питон?
Николай
не
Николай
вебчик на есп, не зашел
Николай
я про приложеньку на комп
Max
А есп в уарт плевать будет?
Николай
ага
Max
На шарпе можно накидать
Николай
это она делает очень хорошо
Max
Ну или qt
Николай
Qt Designer?
Николай
я делал по урокам гайвера в Qt Designer и PyCharm Community Edition 2021.3.1
Николай
я так понял qt это оболочка , или как?
Serge
Qt Designer?
посмотри исходники SerialStudio, там достаточно толково