Привет! Нужно собрать счетчик. Сам не в теме немного, железки купленны. Механика тоже подготовленна. Проблемы с программой. Уже устал собирать из нескольких скетчей один работающий.... Помогите, пожалуйста. Собираю скетч из уроков амперки и др ресурсов (работа с датчиками, работа с LED-индикаторами, и др), как только их не компоновал - генерируются с ошибками Везде разные определения, стили написания программы, не очень мне понятные команды и алгоритмы. Какие задачи я ставлю перед свомим проектом. - аналоговый датчик считает и отправляет на плату сигналы - есть контакт/нету контакта. - Ардуинка принимает и обрабатывает эти сигналы, считает их. - Выводит сигналы на семисегментный индикатор (подсчет до 1500 сигналов, буду ставить 4 индикатора) Нужное кол-во сигналов задается заранее, пока что загрузкой нового скетча. - при достижении определенного кол-ва сигналов, с одного из выходов идет сигнал (сделаю сигнализацию). - На табло мы видим число 1500, сработало реле сигнализации (например, горит сигнальная лампа). Нажимаем кнопку и начинаем отсчет по новой Могу чуть позже скинуть свои наработки - но думаю это не пригодится. Так если, чисто поржать
Если индикаторы будут на сдвиговых регистрах то http://wiki.amperka.ru/конспект-arduino:счетчик-нажатий как раз ваша задача)
Решил кусками действовать: 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); //Конец программы } Я почему-то думал, что мой датчик будет давать мне 0 и 1 в значении, которые я смогу сравнивать. По факту получил вот такие числа. Каким образом можно посчитать количество переключений сигналов???
Значит не хватает напряжения для детектирования "1". Читайте через analogRead() и сравнивайте с каким-нибудь пороговым значением.
Считайте количество изменений с до-порогового уровня на сверх-пороговый. Собственно, так же, как и с цифровым сигналом, только уровень "1" у вас другой будет и округление до "1" программное, а не аппаратное.
А что за датчик-то? Может проще через прерывание, как написано в последнем примере в учебнике амперки? Просто я не очень понимаю, зачем аналоговый датчик отправляет сигнал о наличии контакта. Мне интересно, не сочтите за наглость.
Если не ошибаюсь цифровая 1 это 1.8+ В. То есть сигнал, например 1.5В будет воспринят компаратором как 0, хотя он как бы есть.
Цифровая "1" вроде бы 0,7-0,8 от Uсс, а "0" - 0,1-0,2 от Ucc и зависят от технологии, да... Между уровнями зона неопределенности. Я, в общем, с какой целью интересуюсь. Аналоговый же сигнал - непрерывный во времени. Так меня учили лет... В общем давно это было. И опрос аналогового сигнала через секунду. Это какая же частота этого сигнала, десятые или сотые доли герца? Вот и хочу узнать в целях повышения образованности, это где же такая частота применяется?