I din egen tid! (7 / 11 steg)
Steg 7: Interaktion och några andra idéer
Vi har två skript delar kvar:
3. samverkan, ställa in timmar, minuter, dagar i månaden
4. tillägg, som en LDR att reglera ljusstyrkan, kanske en temperaturgivare
5. roliga effekter eller text
3. samverkan, ställa in timmar, minuter, dagar i månaden
Samverkan är nödvändigt att ställa in tiden, när du startar utan en Arduino. Eller när tiden körs inte korrekt längre.
Vi behöver två knappar, en för att gå in i inställningsläget och den andra för att ändra siffrorna.
Jag bestämde mig att lägga till två större tryckknappar. Enkelt ansluta knapparna till GND och genom en 10K resistor till en PIN-kod och gör en dra upp på det klämmer fast:
pinMode (8, INPUT_PULLUP);
pinMode (9, INPUT_PULLUP);
eller gör det det gamla sättet:
pinMode (8, OUTPUT);
digitalWrite 8, hög.
pinMode (9, OUTPUT); < br > digitalWrite (9, hög).
(Jag tänkte senare något mer fancy:
Använd en magnet och en Hall sensor för anföra som exempel. Kanske för klocka design version 3?)
4. tillägg, som en LDR att reglera ljusstyrkan, kanske en temperaturgivare
Displayen är ganska ljus under natten. Jag använde en LDR för att reglera ljusstyrkan. Ljusstyrkan kan regleras ställa in hastigheten på timern. Detta görs genom att ge OCR1A ett annat värde.
Så jag ansluten en resistor och en LDR till analoga PIN A0 och skapade några steg av ljusstyrka.
(GND - LDR - STIFT 14 - MOTSTÅNDET 2K - GND)
ljusreglering eller ljusnar
om (tCounter % 100 == 0) {//do inte kontrollera varje slinga men bara en gång på ett tag
int hhh = analogRead (0) / 4;
om (hhh < 150) hhh = 0;
annars om (hhh < 175) hhh = 10;
annars om (hhh < 200) hhh = 20;
annars om (hhh < 250) hhh = 50;
göra mörkläggning genom frekvensen av avbrottet
noInterrupts();
OCR1A = 10 + hhh;
interrupts();
5. roliga effekter eller text
Det är där du kan göra en skillnad med den mer "normala" klockor.
Infoga text då och då:
Från höger eller vänster visas några ord slumpmässigt, som Hej, ciao...
För att göra detta behöver du en massa array skiftande. Behöver du tips eftersom denna Arduino manuset är baserat på C.
Jag provade också att lägga till ett rörligt komma med en annan timer, timer0
TCCR0A = 0;
TCCR0B = 0;
TCNT0 = 0;
OCR0A = 50; Jämför match register 16MHz/256 / 2Hz
TCCR0B | = (1 << WGM02); CTC-läge
TCCR0B | = (1 << CS01); 256 prescaler
TIMSK0 | = (1 << OCIE0A); Aktivera timern jämför avbrott
Tillsammans med en andra array, kan vi växla eller ens spela samtidigt de två matriserna.