Hoi mede forumers,

Ik moet voor iemand een soort schakelklok maken die elke dag op bepaalde programmeerbare tijden dingen inschakelt en weer uit schakelt. Ik dacht zelf aan een pic met een dcf77 ontvanger die dan een aantal relais aan stuurt.

Alleen zit ik met het volgende probleem het programma schrijven. PicBasic heb ik nou wel een beetje door. Dus graag zou ik het in deze programmeertaal schrijven. weet alleen niet hoe ik dit het best aan kan pakken. wie wil me een eindje op weg helpen??

Al vast bedankt voor jullie moeite.

Ik wil je gerust op weg helpen, als je bereid bent met een AVR aan de slag te gaan. >:)

Maar in alle ernst: op picbasic.ln staat toch een project met een DCF77-ontvanger. Kan je dat niet als basis nemen?

Je bedoelt deze neem ik aan.(ja staat in een txt file hot linken naar een artikel op picbasic lukt niet.)

Dit is wel een heel gecompliceerd programma. Waar ik waarschijnlijk niet zo maar even een nieuw menu in kan zetten om de tijden te programmeren. of wel??

Hoewel het programma er heel indrukwekkend uitziet, is het redelijk eenvoudig (mede doordat meneer Kieftenbelt er veel commentaar bij heeft staan).

Bekijk het eens rustig (print het bijvoorbeeld uit), en kijk tot hoever je het begrijpt (de eerste hele pagina is SYMBOLS en DIM, dus dat scheelt vast). Kijk welke variabelen je nodig gaat hebben voor jouw programma (waarschijnlijk de tijd, misschien ook de datum), hoe die in het programma heten, en waar je je eigen stukje tussen zou kunnen voegen.

Als je dat doet moet er wel uit te komen zijn.

Hoi allemaal, je kan ook eens op schematheek kijken.
http://www.schematheek.net/index.php?p=forum/topic&t=78
Ik heb deze ook gemaakt.

thanks!! ik ben het programma van frits (picbasic.nl) aan het door spitten. nou ik er mee bezig ben is het idd een vrij makkelijk te begrijpen. zal van avont kijken of ik al een nieuwe code heb.

Zo, heb weer eens stukje code klaar voor het instellen van de tijden.

betwijfel enkel of dit wel zo handig is geschreven. iemand tips of op/aanmerkingen.

Deel van mijn code


; subroutines

Toetseninlezen:

CLEAR Bdtijd
WHILE Entertoets = 0
  IF Omhoog = AAN AND Omlaag = UIT THEN
  INC Bdtijd
    IF Uurbit = TRUE THEN
      IF Bdtijd = > 23 THEN 
      Bdtijd = 0
    ELSEIF Bdtijd = 60 THEN
    Bdtijd = 0
      ENDIF
    ENDIF
  ENDIF

  IF Omlaag = AAN AND Omhoog = UIT THEN
  DEC Bdtijd
    IF Bdtijd = 255 THEN
      IF Uurbit = TRUE THEN
      Bdtijd = 23
      ELSE 
      Bdtijd = 59
    ENDIF
  ENDIF
IF Uurbit = TRUE THEN
  PRINT AT 2,1, DEC Bdtijd " uur"
ELSE 
  PRINT AT 2,1, DEC Bdtijd " min"  
WEND
RETURN

Tijdinstellen:

              ;12345678901234567890
PRINT AT 1,1, "  Tijden instellen  "
PRINT AT 3,1, " In tijd: 00:00"
PRINT AT 4,1, "Uit tijd: 00:00"

Uurbit = TRUE
GOSUB Toetseninlezen
Uurbit = FALSE
Uuraan = Bdtijd

PRINT AT 3,11, DEC Uuraan

GOSUB Toetseninlezen
Minaan = Bdtijd

PRINT AT 3,15 DEC Minaan

Uurbit = TRUE
GOSUB Toetseninlezen
Uurbit = FALSE
Uuruit = Bdtijd

PRINT AT 4,11, DEC Uuruit

GOSUB Toetseninlezen
Minuit = Bdtijd

PRINT AT 4, 15, DEC Minuit

;enze... voor de rest van de programmeerbaren tijden.


END

waarschijnlijk krijg ik nu wel op mijn donder van wegen dubbel post maar ik zie wel :D

Edit: Klein stukje code vergeten.

Heb je al geprobeerd of het werkt? Het is heel lastig om te controleren, omdat ik niet weet wat wat voor moet stellen, maar het ziet er wel redelijk uit.

Ik vond

 IF Bdtijd = > 23 THEN 
      Bdtijd = 0
    ELSEIF Bdtijd = 60 THEN
    Bdtijd = 0

dit er wel bijzonder uitzien. Als Bdtijd 60 is dan is hij sowieso ook groter dan 23. Ik denk dat je een EndIf verkeerd hebt staan.

Nog niet getest.

En nu je het zegt... Zo dan maar??

IF Omhoog = AAN AND Omlaag = UIT THEN
    INC Bdtijd
    ELSEIF Uurbit = TRUE THEN
      IF Bdtijd > 23 THEN 
      Bdtijd = 0
      ENDIF
    IF Bdtijd = 60 THEN
    Bdtijd = 0
    ENDIF
  ENDIF

  IF Omlaag = AAN AND Omhoog = UIT THEN
  DEC Bdtijd
    IF Bdtijd = 255 THEN
      IF Uurbit = TRUE THEN
      Bdtijd = 23
      ELSE 
      Bdtijd = 59
      ENDIF
    ENDIF
  ENDIF
...................

Edit:

Kleine verklaring, Nou kijkt hij er alleen naar als "Uurbit" waar is.
was in het oude prog hier boven ook zo, alleen niet op de goede manier.

[Bericht gewijzigd door Tinus016 op (13%)]

Ja, ik denk dat het wel klopt zo. De eenvoudigste manier om daar helemaal zeker van te zijn is uitproberen..

Het toetsen gedeelte werkt nu. er moesten nog wel enkele kleine aan passingen worden gedaan.

Het programma ziet er nu zo uit KLIK

Filmpje, KLIK

Dus nu dit deel in bouwen in de code van de DCF77 klok.