Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

TM1637 digitale klok met tijdinstelling en alarmfunctie

Componenten en benodigdheden

Arduino Nano R3
× 1
TM1637 4-cijferig display
× 1
DS1302 RTC-module
× 1
SparkFun LilyPad LED Blauw (5st)
× 1
Zoemer
× 1

Over dit project

Dit is een prototype van het tijd- en alarminstellingsmechanisme dat ik van plan ben te gebruiken in mijn volgende digitale klokprojecten. Ik hoop dat je het nuttig vindt. Als je verbeteringen bedenkt, laat het me dan weten. Ik zou ze graag onderzoeken en mogelijk in mijn code opnemen.

Je kunt de hele tutorial bekijken op

Als je deze inhoud leuk vindt en je wilt me ​​ondersteunen bij het maken van soortgelijke video's, ga dan naar mijn Patreon-webpagina

https://www.patreon.com/MariosIdeas

Of

https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=7PD67JWZ9S3EJ&source=url

Code

  • Tijd weergeven van RTC-module plus tijdinstelling en alarminstellingsfunctionaliteit
Tijd weergeven van RTC-module plus tijdinstelling en alarminstellingsfunctionaliteitArduino
Deze code leest de huidige tijd van de RTC-module. Dan kunt u ook de huidige tijd bijwerken en ook de alarmtijd instellen.
Setup-acties worden uitgevoerd met behulp van 3 knoppen.
// Mario's Ideas// TM1637 digitale klok met setup- en alarmfunctionaliteit#include #include #include  //// RTC module declaratie// PINS CLK, DAT, RSTvirtuabotixRTC myRTC(A1,A2,A3);// Variabelen om vorige waarden op te slaan Lees RTC module in minuten;int uren;// Variabelen om de tijd op te slaan waarop het alarm af moet gaan int Alarm_minutes=05;int Alarm_hours=18;uint8_t Blank[] ={0x0};int POSITION=0;//Tabel om 4 cijfers op te slaan, gebruikt in tijd en alarminstellingsprocedureint digits[3];int interval=0;#define Alarm 9 // Knop om de alarmmodus in of uit te schakelen#define Buzer 13#define Led 8//Statusesboolean Alarm_set=false;boolean Alarm_in_progress=false;boolean Setup_on=false;// 4-cijferige displayverbindingspinnen (digitale pinnen)#define CLK 4#define DIO 5// 4-cijferige display-aangifteTM1637Weergave klok (CLK, DIO); ongeldige setup() { attachInterrupt(digitalPinToInterrupt(2), Press_A_Button,RISING); attachInterrupt(digitalPinToInterrupt(3), Press_B_Button,RISING); pinMode (Alarm, INGANG); pinMode (Buzer, UITGANG); pinMode (Led, UITGANG); digitalWrite (Buzer, LAAG); klok.setHelderheid (0x0f); Serial.begin(9600);}void Press_A_Button(){ if (interval>3){ if (Setup_on==false){ Setup_on=true; if (Alarm_set==true){ digits[0]=(int)Alarm_hours/10; cijfers[1]=Alarm_uren-((int)Alarm_hours/10)*10; cijfers[2]=(int)Alarm_minutes/10; cijfers[3]=Alarm_minuten-((int)Alarm_minutes/10)*10; } else { digits[0]=(int)myRTC.hours/10; cijfers[1]=mijnRTC.uren-((int)mijnRTC.uren/10)*10; cijfers[2]=(int)mijnRTC.minuten/10; cijfers[3]=mijnRTC.minuten-((int)mijnRTC.minuten/10)*10; } } anders{ POSITIE++; if (POSITIE==4){ if (Alarm_set==true){ Alarm_minuten=cijfers[3]+cijfers[2]*10; Alarm_uren=cijfers[1]+cijfers[0]*10; } else { myRTC.setDS1302Time( 0, digits[3]+digits[2]*10, digits[1]+digits[0]*10,myRTC.dayofweek, myRTC.dayofmonth, myRTC.month, myRTC.year); klok.showNumberDec(cijfers[0],false,1,0); klok.showNumberDec(cijfers[1],false,1,1); klok.showNumberDec(cijfers[2],false,1,2); klok.showNumberDec(cijfers[3],false,1,3); } POSITIE=0; Setup_on=false; } } } interval=0;}void Press_B_Button(){ if (interval>3){ if(Setup_on){ digits[POSITION]=digits[POSITION]+1; if (POSITIE==0 en cijfers[POSITIE]==3) cijfers[POSITIE]=0; if (POSITIE!=0 en cijfers[POSITIE]==10) cijfers[POSITIE]=0; interval=0; } } interval=0;}void loop() {if (digitalRead(Alarm)==HIGH and Alarm_set==false){ if (interval>30){ digitalWrite(Led,HIGH); Alarm_set=waar; vertraging (300); } } else{ if (digitalRead(Alarm)==HIGH and Alarm_set==true){ if (interval>30){ Alarm_set=false; Alarm_in_progress=false; digitalWrite (Led, LAAG); vertraging (300); } } } mijnRTC.updateTime(); if (Setup_on==true){ clock.showNumberDec(digits[0],false,1,0); klok.showNumberDec(cijfers[1],false,1,1); klok.showNumberDec(cijfers[2],false,1,2); klok.showNumberDec(cijfers[3],false,1,3); vertraging (200); klok.setSegments(Blanco, 1,POSITIE); vertraging (200); klok.showNumberDec(cijfers[0],false,1,0); klok.showNumberDec(cijfers[1],false,1,1); klok.showNumberDec(cijfers[2],false,1,2); klok.showNumberDec(cijfers[3],false,1,3); } else{ if (myRTC.minutes==Alarm_minutes en myRTC.hours==Alarm_hours and Alarm_set==true en Setup_on==false){ Alarm_in_progress=true; } if (Alarm_in_progress){ digitalWrite(Buzer,HIGH); vertraging (1000); digitalWrite (Buzer, LAAG); vertraging (1000); } if (myRTC.minutes!=minutes){ clock.showNumberDecEx((int)myRTC.hours/10*1000+(myRTC.hours-((int)myRTC.hours/10)*10)*100+ (int) myRTC.minutes/10*10+myRTC.minutes-((int)myRTC.minutes/10)*10, (0x80>> 1), true); minuten=mijnRTC.minuten; uren=mijnRTC.uren; } } if (interval<200) interval++;}

Schema's


Productieproces

  1. Soorten analoge en digitale sensoren met toepassingen
  2. Raspberry pi 2 wateralarm met t cobbler plus
  3. Botten bouwen met Raspberry Pi en Python
  4. Digitale transformatie verkennen met Fiix en IDC
  5. Tijd en geld besparen met conditiebewaking
  6. 8 manieren om onderhoudskosten te verlagen en inkomsten te verhogen met onderhoudssoftware
  7. Portenta- en thermokoppelsensor (met MAX6675)
  8. Digitale transformatie versnellen met IoT-gegevens, dankzij Cisco en IBM
  9. Word Clock met minutenresolutie van tijd in woorden
  10. Eenvoudige wekker met DS1302 RTC
  11. De functionaliteit en vooruitgang van lagers