Изучал только бейсик в 1990г.)))
- Войдите на сайт для отправки комментариев
Люди добрые, Здравствуйте!
Из назвния темы думаю понятно какой из меня программист. Пытаюсь найти литературу для ПОЛНЫХ ЧАЙНОКОВ, но к сожления не получется. Читал различные книги по теме, но чтоб их понять требуюся хотя бы базовые познания. Название операторов, данных, функций - прочел, но куда их лепить?... Одним словом нужна пощь в изучении материла.
Задачка такова: 10 диодов подключены к цифровым портам 1-10, кнопка 12. Скетч "Бегущий огонь". Требуется чтоб при коротком нажатии огонь пробегал 3 раза. А при постоянно зажатой кнопке он бегал, пока Крона не умрет.
Из кусков найденных в нэте, собрал скетч "Бегущий огонь". Не судите строго...
unsigned char n;
Сама схемка здесь:https://circuits.io/circuits/2389951-running-fire/edit
Если кто решится помочь, буду премного благодарен!
Начнём сначала. Архитектура программы понятна? Синтаксис понятен?
Туманно...
Ахитектура не очень...
Про скобки, точки с запятыми вроде понятно... Не понятно от куда слова лишние беруться типа: batton, led.... Есть какой то справочник, или можно писать все что ты хочешь назвать в своем устройстве?
Сам я механик. И образование техническое. Если зацепиться за начало нити, я думаю размотать клубок ума хватит. Но я его пока не нашел...
Тогда позвольте Вас отправить сначала вот сюда https://www.youtube.com/playlist?list=PLfDmj22jP9S759DT250VVzfZs_4VnJqLa
Потом сюда http://arduino.ru/Reference
А потом приходите обратно сюда... И если будут вопросы Вам обязательно ответим.
В моем видение этот скетч выглядит так:
unsigned char n; //Беззнаковый тип-это с автопереводчика. Почему он написан именно так? Откуда этот ТИП взялся? С n, понятно- номер чего то, в данном случае порта. И как ТИП связан с портами?
Я по натуре своей - практик. По этому мне легче воспринимать инфу в процессе ее деталировки и видя к чему приводит каждая цифра.
unsigned char n; //Беззнаковый тип-это с автопереводчика. Почему он написан именно так? Откуда этот ТИП взялся? С n, понятно- номер чего то, в данном случае порта. И как ТИП связан с портами?
Попробую....
Теперь про называния стало ясно!)))
И на том спасибо!)))
Вернемся к моей задчке: Как отобразить короткое нажатие? Какой функцией воспользоваться чтоб было 3 прохода огонька? Нужно ли в void setup() что то прописывать для 3 проходов огоньков и почему? КОРОЧЕ... неее длиннее получается!)))))
Вернемся к моей задчке: Как отобразить короткое нажатие? Какой функцией воспользоваться чтоб было 3 прохода огонька? Нужно ли в void setup() что то прописывать для 3 проходов огоньков и почему? КОРОЧЕ... неее длиннее получается!)))))
КОРОЧЕ... ты ещё попроси тебя удочерить:
1. Вставка программного кода в тему/комментарий
2. Программирование
затем, приходи и спрашивай, что тебе в п.1-2 не понятно.
{} после for это кусок кода, который в этом цикле должен исполнятся.
Т.е., если добавить к этому циклу короткое включение, и ограничить повторяемость, то с трехразовым питанием диодов вопрос закрыт. А потом повторить как есть и вопрос решён?
Но как?))))
Удочерить?))) Забавно! Ох мачеху любить буду!))))
Про вставочку, спасибо! Учту!)))
Т.е., если добавить к этому циклу короткое включение, и ограничить повторяемость, то с трехразовым питанием диодов вопрос закрыт. А потом повторить как есть и вопрос решён?
Но как?))))
Вообще-то вложенность циклов один в другой никто не отменял. Ну как мне Вас попросить ссылки посмотреть? Ну, пожалуйста....
Экий колоритный персонаж на форум пришел..
Ссылочками завтра к вечеру займусь. Потом обязательно отчитаюсь. Мне правда хочется ВКУРИТЬ! А пока получается только курить...
Так может сразу нужно было сказать, что завтра посмотрите... и наше время не тратить... Ну Ё моё... А потом еще и скажет: "И на том спасибо!"
ты точно уверен, что твои отчёты будут кому-то, кроме меня будут интересны?
задача: Требуется чтоб при коротком нажатии огонь пробегал 3 раза. А при постоянно зажатой кнопке он бегал, пока Крона не умрет.
вынесли один пробег диодов в отдельную функцию.
вся прога крутится опрашивает кнопку, если нажали раз - прошло три раза подряд и все. если кнопка нажата постоянно, то оно постоянно заходит проигрывать по три раза. в результате получается бесконечный цикл, пока кнопку не отпустят.
я в ардуино синтаксисе еще не очень, надеюсь, все верно написал
Добрый вечер, сенсей! Посмотрел уроки умного мальчика в очках, но пока они не толкнули мысль в верном направлении. Хотя какие то проблески стали появляться.
Благодарю за подсказку! Она работает. Но меня не устраивает то что после выключения кнопки цикл дорабатывет себя. Т.Е 3 пробега постоянно.
Меня интересовл другой вопрос:
if (digitalRead(buttonPin)==HIGH) скетч работает в бесконечном цикле,
if (digitalRead(buttonPin) кнопка нажата коротко или ипульсно)идет лишь 3х кратное повторение.
Как отобразать кратковременность нажатия кнопки?
Хотя бы примерчик... Сенсей!)))
Или что то похожее..... Для меня пока то что написано в "Програмировании", это туман в безлунную ночь в густом лесу... Или задачку дай какю, попроще...
Хотя бы примерчик... Сенсей!)))
Или что то похожее..... Для меня пока то что написано в "Програмировании", это туман в безлунную ночь в густом лесу... Или задачку дай какю, попроще...
там примеры есть.
Для тебя то что написано в Программировании - аксиомы. А для меня- тоеремы! И посложней чем- Пифогоровы штаны, во все стороны равны!)))
Ладно! И на том спасибо, добрый человек!)))
http://www.studfiles.ru/preview/396729/page:4/
По ходу ШИМ приплетать надо...
Благодарю!
Господа, понимаю, какая то хрень, но вроде работает.
Что можно упростить?
Правильно ли я обозначил импульс на кнопку?
Материте меня, смейтесь над моей тупость, но пожалуйста по делу!
Ё моё, через 3 часа н работу!))) Всем удачи!
Выручай, дружище!)))
А зачем еще раз все тоже самое только в теле loop
Наверное так?
Но это не решает вопроса с прерыванием работы волны при отпускании кнопки. Если сильно не париться, то можно эту проверку (на нажатую кнопку) вставить в циклы, которые в ledwave().
И кстати, здесь ничего нет про устранение дребезга контактов... :)
Работать то работает, но не так как хотелось бы...... иногда при коротком нажатии бывет 3 прохода, а иногда 1. Значит с кнопкой я не справился.....
Ну правильно, ты только один раз проверяешь кнопку, и если она СЕЙЧАС в статусе НАЖАТА, то пускаешь три волны (без возможности их прервать). И только после трех волн опять проверяешь кнопку. Итак в вечном цикле "loop".
Я же и пишу, что я дуб-дубейный!)))
Задача эта, поворотник с удленнителем. При коротком нажатии на три пробега световых, при постоянном сигнале бегают огоньки. Зачем второй раз? Так я думал что первый для короткого нажатия, а второй для постоянного сигнала. Вот тебе и ХАХА!)))
Ну тогда так и оставь. Все должно работать. Логически подумай... Если кнопка постоянно нажата, то каждый раз при ее опросе будут запускаться волны, а если пока идут первые три волны кнопку отпустить, то на них все и кончится.
If же будет возвращать false...?
Как мне суть понять? Я не хочу останавливаться. Я хочу вникнуть... А читая список терминов на разных сайтх, что к чему лепить и от чего оттолкнуться, к сожалению не пойму.
Тогда дребезг остается....
йооооо... У тебя код сейчас должен выполнять все согласно твоей задаче.
Он уже не так критичен, но да - остается дребезг. См. "очкастого мальчика".
Меня спрашивали об архитектуре. Где про нее можно прочесть? Какая терминология?
Логический (булевый) тип данных — boolean. Может принимать одно из двух значений true или false. boolean занимает в памяти один байт.
Замечательно написано!!! Но с моими познаниями.....
что за цикл? луп? ладно что в него напихать можно? Как подготовить к работе? Как ограничить количество циклов? КАк связать с дополнительными задачами?
Еслиб это был сайт по ремонту двигателей и АКПП, я бы чувствовал себя чуток уверенней!))))
If же будет возвращать false...?
об этом можно по подробней?
Не-е, так не пойдёт. Найди что-нибудь типа "C++ для чайников". Это C++. По архитектуре программ для ардуино ты и сам все знаешь, сам писал и про loop и про setup.
+ Дядя Федор. Для того что бы отработать дребезг, надо знать несколько правил: 1- время дребезга при нажатии и отжатии клавиши конечно. И если вы сделаете замер с паузой между ними, то всегда можете отработать клавишу.
Пример, измеряем без дребезга клавишу (0 нажата) 111000111
Теперь с дребезгом (Х это дребезг случайно вылетет 0 или 1) 111ХХ000ХХ111. Дребег два знака. Если измеряте с шагом в три и запоминаете старое значение, то послед 10 нажатие клавиши надо делать 3 волны. 00 делать много. Но скорее всего так не получится. Вы наверно поняли почему. Тяжело определи долго или коротко нажата клавиша если клавиша только что нажата. Скорее всего алгоритм надо изменить. Делать всегда когда клавиша нажата, а вот после отжатия выполнить 3 волны и остановится. Будет короткое нажатие пройдут три волны.
Благодарю за столь высокую оценку, но она пока не для меня!))) Пока буду пытаться наполнять пустой чайник!))))