Всем привет! Столкнулся с такой вещью, как снятие аналогового сигнала с A0, не подключая кнопки посмотрел, что выводит на Serial Код (C++): #include <LiquidCrystal.h> LiquidCrystal lcd(10,11,4,5,6,7); int switchModeStatus = 2; float temp_c = 27.9; int profile = 12; int meters = 100; int analogKey = 0; // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin 13 as an output. Serial.begin(9600); lcd.begin(20,4); lcd.print(" Loading ..."); delay(5000); view_lcd(); } void loop() { analogKey = analogRead(A0); Serial.print(analogKey); Serial.print("\n"); delay(1000); } void view_lcd(){ lcd.clear(); lcd.setCursor(0,0); switch (switchModeStatus){ case 0: lcd.print("Type profile"); lcd.setCursor(0,1); lcd.print(profile); lcd.print(" mm"); break; case 1: lcd.print("Meters set"); lcd.setCursor(0,1); lcd.print(meters); lcd.print(" m"); break; case 2: lcd.print("Temp ten"); lcd.setCursor(0,1); lcd.print(temp_c); lcd.print(" C"); break; } } 823 596 409 238 95 28 0 0 0 0 0 0 0 116 304 Почему не 0 или не 1023 как в примерах? Может я что то упустил при инициализации аналогового порта? Заранее спасибо за ответы!!!
Если нога висит в воздухе - это нормально. Там электроны гуляют сами по себе без военного марша. С инициализациецй все правильно. А вот кнопки подключать надо обязательно с резистором. Он и упорядочит ситуацию.
Для 5-ти кнопок, какие нужно использовать резисторы и в какой последовательности? Пробовал использовать делитель притягивая землю, не получилось - совсем....
Обратитесь к тов. Ostrov. Мне кажется, он хорошо разбирается в этом вопросе. Я никогда не делал таких кнопок - все больше одной управляюсь. Что касается analogRead, то вот ссылка на пример работы с оф.сайта: https://www.arduino.cc/en/Reference/AnalogReadResolution
Пытался изобразить как здесь http://arduinolab.pw/index.php/2015/12/05/rezistivnaya-klaviatura-princip-raboty/
Ну а что, вы все правильно сказали и нарисовали. А если нужна конкретная схема для клавиатуры 4х4 или 4х3 со значениями резисторов, то вечером выложу, при себе ее нет.
Хотел уточнить ещё по поводу резисторов, я все время использовал подобие r-2r матрицы. в чем прикол использования этой схемы?
Ну там и есть по сути матрица из резистивных делителей. Прикол перед обычным опросом в экономии пинов, всего 1 проводок на всю клавиатуру нужен вместо 7 или 8. Но зато точность не гарантирована, особенно при перепаде температур.
То вы верно подметили. Уточню свой вопрос, какой прикол в использовании разных сопротивлений увеличивающимся в геометрической прогрессии, вместо того как в схеме r-2r.
Все равно не пойму, зачем? Так проще или надежнее? Я вообще от резисторного подключения ухожу если возможность есть.
Я тоже стараюсь. Делаю матрицу, но иногда необходимо сд делать панельку на дверца, и тонкий проводок сделать и нет места для микросхемы лишней, тогда в ход идёт гибридная матрица с 1-2строками и 5-ю строками, все столбцы записаны от 5В между столбцами резисторы ... Вобщем вот такая вот импровизация. А так то предпочитаю матрицу на шине I2C или напрямую к МК
Можно еще на сдвиговых регистрах, но там жалко пропадает половина ножек, в идеале на один входной и один выходной 4 матрицы 4х4 вешать, но зачем людям столько клавиатур? )) Еще вот есть изощренный способ - микросхема TM1638, но это вообще монстр, я с ней разобрался, но практического применения достойного пока не нашел.
Можно и бе Можно и без кнопок, я ее в голом виде юзал, штука интересная, сама рисует динамически разрядов 8 или 10 не помню уже хоть с общим анодом хоть с катодом и кнопки опрашивает при этом сама. При этом не очень дорогая.