Სარჩევი:

მარტივი, პრაქტიკული Arduino წამზომი: 4 ნაბიჯი
მარტივი, პრაქტიკული Arduino წამზომი: 4 ნაბიჯი

ვიდეო: მარტივი, პრაქტიკული Arduino წამზომი: 4 ნაბიჯი

ვიდეო: მარტივი, პრაქტიკული Arduino წამზომი: 4 ნაბიჯი
ვიდეო: 1. რა არის Arduino? როგორ მუშაობს კომპიუტერი? 2024, ნოემბერი
Anonim
მარტივი, პრაქტიკული Arduino წამზომი
მარტივი, პრაქტიკული Arduino წამზომი

მოძებნეთ ინტერნეტში Arduino წამზომი. თქვენ ალბათ უბრალოდ გააკეთეთ ეს, თუ აქ ხართ. პირადი გამოცდილებიდან შემიძლია გითხრათ, რომ ნებისმიერი წამზომი ინტერნეტში არის ძალიან რთული (კოდში, დამწყებთათვის), ან ძალიან გამარტივებული და არა პრაქტიკული, როგორიც არის ის, ვინც წამებს ითვლის გადატვირთვის გარეშე.

შენც ასე ფიქრობ, არა? აბა გამოიცანი რა. მე ეს გავაკეთე და უფრო მეტიც, მე პირდაპირ ვიღებ ჩემს შეყვანას millis () ფუნქციადან- რიცხვების გაუთავებელი ხაზი (49 დღემდე, ან რაც არ უნდა იყოს). Საუკეთესო ნაწილი? ეს მხოლოდ ერთი ხაზია.

გადატვირთვა, წამზომის ფაქტობრივი მძიმე ნაწილია. შუამავლებისთვის, პროგრამისტებისთვის, თუ ეს უკვე არ გაკეთებულა, წადით წინ და შეეცადეთ ეს თავად გააკეთოთ, წამი, წუთი და საათი ერთად. მიხვდები რაზეც ვსაუბრობ.

დამწყებთათვის, წაიკითხეთ და ისიამოვნეთ ჩემი გონების გენიალურობით.

უბრალოდ ვხუმრობ, მაგრამ გამოსავალი, რომელიც მე მივიღე, საკმაოდ სისუფთავეა. აი რა არის:

ნაბიჯი 1: გამოსავალი

Გადაწყვეტილება
Გადაწყვეტილება

ასე რომ, პრობლემა გადატვირთვაა. ჩვენ გვინდა რიცხვების უწყვეტი, განმეორებითი ციკლი, თანმიმდევრული რიცხვების უსასრულო გამომავალიდან (მილი) (ის ძირითადად ითვლის მილიწამს, ანუ რეალურად 1.024 მილიწამს, მაგრამ რაც არ უნდა იყოს).

პირველი რაც იბადება არის განსხვავების გამოყენება, როგორიცაა დრო 1 – დრო 2 და შეფერხება. Დაივიწყე. მას სჭირდება მინიმუმ ექვსი სტრიქონი კოდი და if განცხადება ჩატვირთვისას.

ასე რომ, აქ არის როგორ გავაკეთოთ ეს. ჩვენ გვაქვს ლიმიტი (59). ჩვენ გვსურს, რომ 0 -დან 59 -მდე განმეორდეს ისევ და ისევ. Როგორ?

რა მოხდება, თუ… ჩვენ მივიღებთ მილილის ფუნქციის დანარჩენ ნაწილს გაყოფილი 59…. ბინგო!

ასე რომ, ასე უნდა იყოს:

(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: ნაწილები

Ნაწილები
Ნაწილები

ბევრი არა, საერთოდ

  1. ნებისმიერი არდუინო
  2. ნებისმიერი ჩვენება (მე გამოვიყენე 0.96 "OLED, მაგრამ თქვენ შეგიძლიათ გამოიყენოთ რაც გაქვთ, უბრალოდ დარწმუნდით, რომ განათავსეთ სწორი ცვლადები თქვენი ეკრანის ჩვენების ფუნქციებში.)

Ის არის.

ნაბიჯი 3: კოდი

აი წადი ეს საკმაოდ ნათლად არის კომენტარი, ასე რომ არ უნდა არსებობდეს პრობლემები. ბიბლიოთეკები და init 0.96 OLED არის კოდში. შეცვალეთ იგი საკუთარი ჩვენებით, თუ ის განსხვავებულია.

// 0.96 OLED ბიბლიოთეკა

#ჩართეთ

#ჩართეთ

#ჩართეთ

#ჩართეთ

// 0.96 OLED ინიციატივი

#განსაზღვრეთ OLED_RESET 4

Adafruit_SSD1306 ჩვენება (OLED_RESET);

ინ წამი;

int წუთი;

int საათი;

void setup () {

// კიდევ 0,96 დიუმიანი OLED ინიციატივი

ჩვენება. დასაწყისი (SSD1306_SWITCHCAPVCC, 0x3C);

display.clearDisplay (); display.setTextSize (2); display.setTextColor (WHITE); }

ბათილი მარყუჟი () {

წამი = (60 + მილი () / 1000) % 60;

წუთი = (60 + მილი () / 60000) % 60; საათი = (25 + მილი () / 3600000) % 25;

display.clearDisplay ();

display.setCursor (0, 22); // დაბეჭდე ჩვენების გადატვირთვის დღიდან. print (საათი); display.print ("h:");

// დაბეჭდეთ მიუთების რაოდენობა გადატვირთვის შემდეგ

ჩვენება. ბეჭდვა (წუთი);

ჩვენება. ბეჭდვა ("მ:");

// დაბეჭდე წამების რაოდენობა გადატვირთვის შემდეგ display.print (წამი); display.print ("s");

display.setCursor (0, 0);

display.print ("წამზომი"); display.drawLine (0, 18, 128, 18, WHITE); ჩვენება. ჩვენება ();

}

ნაბიჯი 4: დასრულება…

დასასრულს…
დასასრულს…

ასე რომ ეს არის! წადი ახლა რაც გინდა ის გააკეთე. დალიეთ კვერცხი, ან დაიკავეთ თქვენი სამეზობლო.

გაიხარე, აარუშ

გირჩევთ: