Помощь новичку

Тема в разделе "Arduino & Shields", создана пользователем s2dent6732, 23 дек 2016.

  1. s2dent6732

    s2dent6732 Нерд

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

    Уже устал собирать из нескольких скетчей один работающий.... Помогите, пожалуйста.
    Собираю скетч из уроков амперки и др ресурсов (работа с датчиками, работа с LED-индикаторами, и др), как только их не компоновал - генерируются с ошибками :( Везде разные определения, стили написания программы, не очень мне понятные команды и алгоритмы.

    Какие задачи я ставлю перед свомим проектом.
    - аналоговый датчик считает и отправляет на плату сигналы - есть контакт/нету контакта.
    - Ардуинка принимает и обрабатывает эти сигналы, считает их.
    - Выводит сигналы на семисегментный индикатор (подсчет до 1500 сигналов, буду ставить 4 индикатора) Нужное кол-во сигналов задается заранее, пока что загрузкой нового скетча.
    - при достижении определенного кол-ва сигналов, с одного из выходов идет сигнал (сделаю сигнализацию).
    - На табло мы видим число 1500, сработало реле сигнализации (например, горит сигнальная лампа). Нажимаем кнопку и начинаем отсчет по новой

    Могу чуть позже скинуть свои наработки - но думаю это не пригодится. Так если, чисто поржать :)
     
  2. ostrov

    ostrov Гуру

    Что конкретно не получается? Две задачи с половиной и все довольно простые.
     
  3. olegoriy

    olegoriy Гик

  4. rkit

    rkit Гуру

    Если брать микрухи, то уж сразу брать счетчики с выводом на индикатор.
     
  5. olegoriy

    olegoriy Гик

    А если захочется "stop" или "sos" написать на индикаторах?)
     
  6. rkit

    rkit Гуру

    А если захочется еще и посудомойку прикрутить к схеме? А? Что тогда?
     
  7. olegoriy

    olegoriy Гик

    Ладно ладно простите) я не в коем разе не хотел с вами спорить):)
     
  8. s2dent6732

    s2dent6732 Нерд

    Решил кусками действовать:
    1. Подключение датчика
    Вот код

    //Наш датчик подключен к 5 пину
    #define SENSOR_PIN A5

    void setup()

    {
    //Назначим функционал пинов (вход/выход)

    pinMode(SENSOR_PIN, INPUT);


    Serial.begin(9600);

    }

    void loop(){

    //Время опроса датчика 1000 мсекунд = 1 секунд потом поменяем по результатом тестов
    delay(500);

    //Запись в переменную значений сенсора счетчика
    int valsensor=analogRead(SENSOR_PIN);

    //Вывод на комп значения
    Serial.println(valsensor);

    //Конец программы
    }


    img-2017-01-13-16-50-46.png


    Я почему-то думал, что мой датчик будет давать мне 0 и 1 в значении, которые я смогу сравнивать. По факту получил вот такие числа.
    Каким образом можно посчитать количество переключений сигналов???
     
  9. Unixon

    Unixon Оракул Модератор

    digitalRead()
     
  10. s2dent6732

    s2dent6732 Нерд

    Все по нулям... Не читает так сигнал. Нужно переключать датчик в цифровой вход/выход???
     
  11. Unixon

    Unixon Оракул Модератор

    Нет, он уже такой.
     
  12. Unixon

    Unixon Оракул Модератор

    Значит не хватает напряжения для детектирования "1". Читайте через analogRead() и сравнивайте с каким-нибудь пороговым значением.
     
  13. Unixon

    Unixon Оракул Модератор

    Считайте количество изменений с до-порогового уровня на сверх-пороговый. Собственно, так же, как и с цифровым сигналом, только уровень "1" у вас другой будет и округление до "1" программное, а не аппаратное.
     
  14. Jedi

    Jedi Гик

    А что за датчик-то? Может проще через прерывание, как написано в последнем примере в учебнике амперки?
    Просто я не очень понимаю, зачем аналоговый датчик отправляет сигнал о наличии контакта. Мне интересно, не сочтите за наглость.
     
  15. ostrov

    ostrov Гуру

    Если не ошибаюсь цифровая 1 это 1.8+ В. То есть сигнал, например 1.5В будет воспринят компаратором как 0, хотя он как бы есть.
     
  16. Jedi

    Jedi Гик

    Ну это да, я просто хочу понять... Может ТС объяснит что он имеет ввиду насчет контактов

     
  17. Unixon

    Unixon Оракул Модератор

    Смотря по какой технологии сделана мелкосхема, которая его воспринимает...
     
  18. Jedi

    Jedi Гик

    Цифровая "1" вроде бы 0,7-0,8 от Uсс, а "0" - 0,1-0,2 от Ucc и зависят от технологии, да... Между уровнями зона неопределенности. Я, в общем, с какой целью интересуюсь. Аналоговый же сигнал - непрерывный во времени. Так меня учили лет... В общем давно это было. И опрос аналогового сигнала через секунду. Это какая же частота этого сигнала, десятые или сотые доли герца? Вот и хочу узнать в целях повышения образованности, это где же такая частота применяется?
     
  19. ostrov

    ostrov Гуру

    В данном случае, полагаю, речь идет о нашем родном, причем в 5В варианте.
     
  20. Unixon

    Unixon Оракул Модератор

    [​IMG]
     
    Максим B нравится это.