Mundarija:
Video: Oddiy, amaliy Arduino sekundomeri: 4 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:27
Arduino sekundomerini Internetda qidiring. Ehtimol, siz hozir qilgan bo'lsangiz, agar bu erda bo'lsangiz. Shaxsiy tajribamdan shuni aytishim mumkinki, Internetdagi har qanday soniya hisoblagichi juda murakkab (kodda, yangi boshlanuvchilar uchun), yoki juda soddalashtirilgan va amaliy emas, xuddi soniyalarini tiklamasdan sanashni davom ettiradiganlar kabi.
Siz ham shunday deb o'ylaysiz, to'g'rimi? Xo'sh, nima deb taxmin qiling. Men buni qildim va bundan tashqari, men o'zimni millis () funktsiyasidan to'g'ridan-to'g'ri qabul qilaman- cheksiz sonlar qatori (49 kungacha yoki har qanday). Eng yaxshi qismi? Bu faqat bitta qator.
Qayta tiklash - bu sekundomerning qiyin qismi. O'rta darajali dasturchilar uchun, agar siz hali buni qilmagan bo'lsangiz, davom eting va buni o'zingiz, soniyalar, daqiqalar va soatlarni birgalikda bajarishga harakat qiling. Siz nima haqida gapirayotganimni tushunasiz.
Yangi boshlanuvchilar uchun o'qishni davom ettiring va mening aql -idrokimdan zavqlaning.
Hazil, lekin men topgan yechim juda chiroyli. Mana bu nima:
1 -qadam: Yechim
Shunday qilib, muammo qayta o'rnatishdir. Biz xohlagan narsa - ketma -ket sonlarning (millis () - millisekundlarni yoki aslida 1,024 millisekundlarni, lekin nima bo'lishidan qat'i nazar) uzluksiz, takrorlanadigan raqamlar aylanishi.
Aqlga keladigan birinchi narsa -vaqt1 -vaqt2 va kechikish kabi farqni ishlatish. Buni unut. Yuklash uchun kamida olti qatorli kod va if iborasi kerak.
Shunday qilib, buni qanday qilish kerak. Bizda chegara bor (59). Biz 0 dan 59 gacha bo'lgan hamma narsani takrorlashini xohlaymiz. Qanaqasiga?
Agar biz … millis funktsiyasining qolgan qismini 59 ga bo'lsak… Bingo!
Shunday qilib, shunday bo'lishi kerak:
(60 [boshlang'ich qiymat sifatida, chunki chegara 59] + millis () / 1000 [1000 millisekund soniya]) % 60
OK, tushuntirib bering. (%) yoki modul, asosan, qolganini topadigan (+) kabi operator. Xuddi 9 % 2 = 1.
Shunday qilib:
- qolgan qismi (60 + 0) % 60 = 0
- qolgan qismi (60 + 1) % 60 = 1
- qolgan qismi (60 + 58) % 60 = 58
- qolgan qismi (60 + 59) % 60 = 59
- qolgan qismi (60 + 60) % 60 = 60
- qolgan qismi (60 + 61) % 60 = 1
Qarang!
Endi qismlar haqida.
2 -qadam: qismlar
Ko'p emas, umuman
- Har qanday arduino
- Har qanday displey (men 0,96 dyuymli OLED -dan foydalandim, lekin sizda bor narsadan foydalanishingiz mumkin, faqat displeyingizning ko'rsatish funktsiyalariga to'g'ri o'zgaruvchilarni qo'yganingizga ishonch hosil qiling.)
Bo'ldi shu.
3 -qadam: Kod
Mana, ketyapsiz. Bu juda aniq izohlangan, shuning uchun hech qanday muammo bo'lmasligi kerak. Kutubxonalar va 0.96 dyuymli OLED kodi kodda. Agar u boshqacha bo'lsa, uni o'z displeyingiz bilan almashtiring.
// 0,96 dyuymli OLED kutubxonalari
#qo'shing
#qo'shing
#qo'shing
#qo'shing
// 0,96 dyuymli OLED kirish
#OLED_RESETni belgilang 4
Adafruit_SSD1306 displeyi (OLED_RESET);
int soniyalar;
int daqiqa;
int soatlari;
bo'sh o'rnatish () {
// Yana 0,96 dyuymli OLED -init
display.begin (SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay (); display.setTextSize (2); display.setTextColor (oq); }
void loop () {
soniya = (60 + millis () / 1000) % 60;
daqiqa = (60 + millis () / 60000) % 60; soat = (25 + millis () / 3600000) % 25;
display.clearDisplay ();
display.setCursor (0, 22); // displeyni tiklashdan keyin soat sonini chop eting.print (soat); display.print ("h:");
// qayta o'rnatilgandan so'ng, daqiqalar sonini chop eting
displey.print (daqiqa);
display.print ("m:");
// displeyni tiklashdan keyin soniya sonini chop eting.print (soniya); display.print ("s");
display.setCursor (0, 0);
display.print ("Sekundomer"); display.drawLine (0, 18, 128, 18, oq); display.display ();
}
4 -qadam: Yakuniy yakun …
Demak, hammasi shu! Endi u bilan xohlagan narsani qiling. Tuxumga vaqt bering yoki mahallangizni egallab oling.
Salom, Aarush
Tavsiya:
Arduino Leonardo sekundomeri: 3 qadam
Arduino Leonardo soniya hisoblagichi: Kredit: https://www.instructables.com/id/Arduino-Stopwatch … Bu sekundomer dizayni yuqoridagi havoladan kelib chiqqan, bu sekundomer 1dan sanaladi, bu esa 60 sekunddan pastga hisoblanadi. . Men ishlatgan kodning aksariyati asl nusxaga mos keladi
PIR, 3D bosilgan qovoq va Troll Arduino -ga mos keladigan ovozli pranker/amaliy hazillar taxtasi yordamida Halloween qo'rqitish mashinasi: 5 qadam
PIR, 3D bosilgan qovoq va Troll Arduino -ga mos keladigan ovozli pranker/amaliy hazil taxtasi yordamida Halloween qo'rqitish mashinasi: EngineeringShock Electronics kompaniyasi Patrik Tomas Mitchell tomonidan yaratilgan va yaqinda Kickstarter -da to'liq moliyalashtirilgan Troll taxtasi. Men bir necha hafta oldin o'z mukofotimni oldim va ba'zi misollarni yozishga va Arduino kutubxonasini qurishga yordam berdim
I2C LCD yordamida Arduino sekundomeri: 5 qadam
I2C LCD yordamida Arduino sekundomeri: Ushbu loyihada men sizga LCD displey va Arduino -ni interaktiv sekundomer sifatida ishlatishni o'rgataman. Agar sizning loyihangiz taqdim etilgan kod bilan tugasa, u yuqoridagi rasmga o'xshab ketishi kerak. Qayerdan boshlashni bilish uchun keyingi bosqichga o'ting
Arduino sekundomeri: 4 qadam (rasmlar bilan)
Arduino sekundomeri: Bu ko'rsatma sizga Arduinodan to'xtash soatini yasashni ko'rsatib beradi
VHDL sekundomeri: 8 qadam (rasmlar bilan)
VHDL sekundomeri: Bu VHDL va FPGA elektron platasidan, masalan, Basys3 Atrix-7 platasidan foydalanib, sekundomer qilish bo'yicha qo'llanma. Sekundomer 00.00 soniyadan 99.99 sekundgacha hisoblay oladi. U ikkita tugmani ishlatadi, biri ishga tushirish/to'xtatish tugmasi, ikkinchisi esa