Мазмуну:
Video: Жөнөкөй, практикалык Arduino секундомери: 4 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Интернеттен Arduino секундомерин издеңиз. Балким сиз жөн эле кылгандырсыз, эгер сиз бул жерде болсоңуз. Жеке тажрыйбамдан улам, мен сизге айта алам, интернеттеги секундомер өтө эле татаал (коддо, башталгычтар үчүн), же өтө жөнөкөйлөштүрүлгөн жана практикалык эмес, жөн эле секундасын баштапкы абалга келтирбестен.
Сиз да ошондой ойлойсуз, ээ? Жакшы, эмне деп ойлойсуң. Мен муну жасадым, жана дагы, мен миллис () функциясынан түздөн-түз киргизем- чексиз сандардын линиясы (49 күнгө чейин же башка). Эң жакшы бөлүгү? Бул бир гана сызык.
Баштапкы абалга келтирүү - бул секундомердин эң оор бөлүгү. Орто, программисттер үчүн, эгер сизде жок болсо, улантыңыз жана муну өзүңүз секунда, мүнөт жана саат менен бирге жасоого аракет кылыңыз. Мен айтып жатканымды түшүнөсүң.
Жаңы баштагандар үчүн окугула жана менин акылымдын генийине көңүл бургула.
Тамаша, бирок мен тапкан чечим абдан тыкан. Мына бул эмне:
1 -кадам: Чечим
Ошентип, көйгөй баштапкы абалга келүүдө. Биз каалаган нерсе - үзгүлтүксүз, кайталануучу цикл, ырааттуу сандардын чексиз чыгарылышынан (миллис () - негизинен миллисекунддарды, же чындыгында 1.024 миллисекунддарды эсептейт, бирок баары бир).
Акылга келген биринчи нерсе, убакыт1 -убакыт2 жана кечигүү сыяктуу айырмачылыкты колдонуу. Муну унут. Жүктөө үчүн кеминде алты сап код жана if оператору талап кылынат.
Ошентип, муну кантип жасоо керек. Бизде чек бар (59). Биз 0дон 59га чейинки нерселердин кайталанышын каалайбыз. Кантип?
Эмне … биз миллис функциясынын калган бөлүгүн 59га бөлүп алсак… Bingo!
Ошентип, мындай болушу керек:
(60 [баштапкы мааниси катары, анткени чек 59] + миллис () / 1000 [1000 миллисекунд бир секунд]) % 60
Макул, түшүндүрүп берейин. (%) же модуль, негизинен, калганын тапкан (+) сыяктуу оператор. 9 % 2 = 1 сыяктуу.
Ошентип:
- калганы (60 + 0) % 60 = 0
- калганы (60 + 1) % 60 = 1
- калганы (60 + 58) % 60 = 58
- калганы (60 + 59) % 60 = 59
- калганы (60 + 60) % 60 = 60
- калганы (60 + 61) % 60 = 1
Көр!
Эми, бөлүктөр үчүн.
2 -кадам: Бөлүктөр
Көп эмес, такыр
- Ар кандай ардуино
-
Ар кандай дисплей (мен 0.96 дюймдук OLEDди колдондум, бирок сизде бар нерсени колдоно аласыз, жөн гана дисплейиңиздин дисплей функцияларына туура өзгөрмөлөрдү киргизиңиз.)
Дал ушул.
3 -кадам: Кодекс
Мына кеттик. Бул абдан ачык жазылган, андыктан эч кандай көйгөй болбошу керек. 0.96 OLED үчүн китепканалар жана init коддо. Башкача болсо, аны өзүңүздүн дисплейиңиз менен алмаштырыңыз.
// 0.96 OLED китепканалары
#кошуу
#кошуу
#кошуу
#кошуу
// 0.96 OLED Init
#аныктоо OLED_RESET 4
Adafruit_SSD1306 дисплейи (OLED_RESET);
int seconds;
int мүнөт;
int hours;
жараксыз орнотуу () {
// Дагы 0,96 дюймдук OLED Init
display.begin (SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay (); display.setTextSize (2); display.setTextColor (АК); }
void loop () {
секунд = (60 + миллис () / 1000) % 60;
мүнөт = (60 + миллис () / 60000) % 60; саат = (25 + миллис () / 3600000) % 25;
display.clearDisplay ();
display.setCursor (0, 22); // дисплейди калыбына келтиргенден кийинки сааттардын санын басып чыгаруу.чап (саат); display.print ("h:");
// баштапкы абалга келтирилгенден кийинки мүнөттөрдүн санын басып чыгаруу
көрсөтүү.басуу (мүнөт);
display.print ("m:");
// дисплейди баштапкы абалга келтиргенден кийинки секунддардын санын басып чыгаруу.печат (секунд); display.print ("s");
display.setCursor (0, 0);
display.print ("Секундомер"); display.drawLine (0, 18, 128, 18, АК); display.display ();
}
4 -кадам: Акыркы бүтүрүү…
Ошентип, бүттү! Эми муну менен эмнени кааласаң ошону кыл. Бир аз жумуртка бөлүңүз же коңшуңузду ээлеп алыңыз.
Салам, Аруш
Сунушталууда:
Үйдө колдонуу үчүн практикалык PIR: 7 кадам (Сүрөттөр менен)
Үйдө колдонуу үчүн практикалык PIR: Үйдөгү автоматташтыруу долбоорлору менен иштегендердин көбү сыяктуу эле, мен дагы өз үйүмдө бурчтук бурулуштарды автоматташтыруу үчүн функционалдуу PIR сенсорун курууну көздөчүмүн. Жарык которгуч PIR сенсорлору оптималдуу болмок да, бир бурчту ийилте албайсыз. Ти
Пир, 3D басылган ашкабак жана Troll Arduino менен шайкеш келген аудио пранкер/практикалык тамашалар тактасын колдонуп, Хэллоуинди коркутуучу машина .: 5 кадам
Пирди, 3D Басылган Ашкабакты жана Тролл Ардуино Аудио Пранкерин/Практикалык Тамашалар Кеңешин колдонгон Хэллоуин Коркутуучу Машинасы: EngineeringShock Electronicsтин Патрик Томас Митчелл тарабынан түзүлгөн жана жакында эле Kickstarterде каржыланган тролл тактасы. Мен сыйлыктарды бир нече жума эрте алдым, колдонуу боюнча кээ бир мисалдарды жазууга жана Arduino китепканасын курууга жардам берүү үчүн
Практикалык Arduino ESP32 Wireless Wall Outlet LED Strip Controller: 6 кадам
Практикалык Arduino ESP32 Wireless Wall Outlet LED Strip Controller: Бул абдан арзан DIY strips.It үчүн абдан практикалык DIY Wireless Wall Outlet контролери. Алар RGB Led тилкелери менен жакшы иштешет. EBay Wifi контроллери жакшы курулган эмес жана оңой эле бузулат. Алс
1602 ЖК баскычтоп калканчын колдонуу W/ Arduino [+Практикалык долбоорлор]: 7 кадам
1602 LCD клавиатурасы Shield W/ Arduino колдонуу [+Практикалык долбоорлор]: Сиз бул жана башка укмуштуудай сабактарды ElectroPeakтин расмий сайтынан окуй аласызБул карооБул окуу куралында сиз 3 практикалык долбоор менен Arduino LCD клавиатура калканчын кантип колдонууну үйрөнөсүз. Калканды кантип орнотуу жана ачкычтарды аныктооHo
VHDL секундомери: 8 кадам (сүрөттөр менен)
VHDL секундомери: Бул Basys3 Atrix-7 тактасы сыяктуу VHDL жана FPGA схемасын колдонуу менен секундомерди жасоо боюнча окуу куралы. Секундомер 00.00 секунддан 99.99 секундга чейин эсептей алат. Бул эки баскычты колдонот, бири баштоо/токтотуу баскычы үчүн, экинчиси