Arduino DUE и Analog

Тема в разделе "Arduino & Shields", создана пользователем CugCvang, 12 май 2016.

  1. CugCvang

    CugCvang Нуб

    Всем привет!

    Столкнулся с такой вещью, как снятие аналогового сигнала с 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 как в примерах? Может я что то упустил при инициализации аналогового порта?

    Заранее спасибо за ответы!!!
     
  2. ИгорьК

    ИгорьК Оракул Модератор

    Если нога висит в воздухе - это нормально. Там электроны гуляют сами по себе без военного марша.
    С инициализациецй все правильно.
    А вот кнопки подключать надо обязательно с резистором. Он и упорядочит ситуацию.
     
  3. CugCvang

    CugCvang Нуб

    Пробовал еще через резистор 220ом, 1кОм на + и на -, все равно не точные значения ...
     
  4. CugCvang

    CugCvang Нуб

    Для 5-ти кнопок, какие нужно использовать резисторы и в какой последовательности? Пробовал использовать делитель притягивая землю, не получилось - совсем....
     
  5. ИгорьК

    ИгорьК Оракул Модератор

    Обратитесь к тов. Ostrov. Мне кажется, он хорошо разбирается в этом вопросе. Я никогда не делал таких кнопок - все больше одной управляюсь.
    Что касается analogRead, то вот ссылка на пример работы с оф.сайта: https://www.arduino.cc/en/Reference/AnalogReadResolution
     
  6. CugCvang

    CugCvang Нуб

  7. ИгорьК

    ИгорьК Оракул Модератор

    Из вашего же последнего поста:
    [​IMG]
     
  8. CugCvang

    CugCvang Нуб

    Пытался изобразить на видио с ютюба, а ссыль нашел только сегодня
     
  9. ostrov

    ostrov Гуру

    Ну а что, вы все правильно сказали и нарисовали. А если нужна конкретная схема для клавиатуры 4х4 или 4х3 со значениями резисторов, то вечером выложу, при себе ее нет.
     
    ИгорьК нравится это.
  10. CugCvang

    CugCvang Нуб

    Спасибо за комментарии, если не сложно киньте схемкой вечерком - учиться никогда не поздно...
     
  11. Roon Booh

    Roon Booh Нерд

    Хотел уточнить ещё по поводу резисторов, я все время использовал подобие r-2r матрицы.
    в чем прикол использования этой схемы?
     
  12. ostrov

    ostrov Гуру

    Ну там и есть по сути матрица из резистивных делителей. Прикол перед обычным опросом в экономии пинов, всего 1 проводок на всю клавиатуру нужен вместо 7 или 8. Но зато точность не гарантирована, особенно при перепаде температур.
     
  13. Roon Booh

    Roon Booh Нерд

    То вы верно подметили.
    Уточню свой вопрос, какой прикол в использовании разных сопротивлений увеличивающимся в геометрической прогрессии, вместо того как в схеме r-2r.
     
  14. ostrov

    ostrov Гуру

    Покажите схему как вы подключали.
     
  15. Roon Booh

    Roon Booh Нерд

    Схема такая же как самодельный R-2R ЦАП, только вместо транзисторов тактовая кнопка.
     
  16. ostrov

    ostrov Гуру

    Все равно не пойму, зачем? Так проще или надежнее? Я вообще от резисторного подключения ухожу если возможность есть.
     
  17. Roon Booh

    Roon Booh Нерд

    Я тоже стараюсь. Делаю матрицу, но иногда необходимо сд делать панельку на дверца, и тонкий проводок сделать и нет места для микросхемы лишней, тогда в ход идёт гибридная матрица с 1-2строками и 5-ю строками, все столбцы записаны от 5В между столбцами резисторы ... Вобщем вот такая вот импровизация.

    А так то предпочитаю матрицу на шине I2C или напрямую к МК
     
  18. ostrov

    ostrov Гуру

    Можно еще на сдвиговых регистрах, но там жалко пропадает половина ножек, в идеале на один входной и один выходной 4 матрицы 4х4 вешать, но зачем людям столько клавиатур? ))

    Еще вот есть изощренный способ - микросхема TM1638, но это вообще монстр, я с ней разобрался, но практического применения достойного пока не нашел.
     
  19. Roon Booh

    Roon Booh Нерд

    Изощреный способ это уже сенсорная панель с матрицой кнопок...
     
  20. ostrov

    ostrov Гуру

    Можно и бе
    Можно и без кнопок, я ее в голом виде юзал, штука интересная, сама рисует динамически разрядов 8 или 10 не помню уже хоть с общим анодом хоть с катодом и кнопки опрашивает при этом сама. При этом не очень дорогая.