
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
> hi vielen dank erst mal für deine antwort funktioniert jetz 1A. > hab aber noch ein problem will noch eine zeitschaltuhr für 2 relais haben die aber nicht so funktioniert wie sie soll. würdest du das anders realisieren? > hier der Quelltext: (r1 und r4 sind die relais > > > > define TimeStart Word[10] > define TimeEnd Word[11] > > define t Byte[17] > define px Byte[18] > > #Zeitschaltuhr > gosub LichtTimer > gosub WasserTimer > > > > #LichtTimer > px=0 > for t = 0 to 10 step 2 > looktab LichtTab, t, TimeStart > looktab LichtTab, t+1, TimeEnd > if (TimeStart>=(hour*100+Minute) and (hour*100+Minute) > > If px>0 then goto r1 > > return > > #WasserTimer > px=0 > for t = 0 to 2 step 2 > looktab WasserTab, t, TimeStart > looktab WasserTab, t+1, TimeEnd > if (TimeStart>=(hour*100+Minute) and (hour*100+Minute) > > If px>0 then goto r4 > > return > > > '***** Definition der internen Zeitschalttabellen***** > > Table LichtTab 'Licht > 0001 0002 '00:01 bis 00:02 > Tabend > > Table WasserTab 'Bewässerung > 0003 0004 > 0005 0006 > Tabend > Hier noch eine 2. frage. warum gehen wenn die temperatur steigt die relais nacheinander an und bleiben alle an erst wenn die temperatur sink gehen nach einander die jeweiligen relais wieder aus. ich will aber das jeweils nur ein relais angeht. hier der quelltext: 'Digitalports define Clock Port[1] 'Serial clock input für SHT75 define Data Port[2] 'Serial data für SHT75 define DS Port[3]'DATA IN für Relaisplatine define SH Port[4] 'Shift CLK für Relaisplatine define ST Port[5] 'Stotre CLK für Relaisplatine 'Variablen define tempW word[1] 'Überlappung mit Byte 1 & 2 !!!! define temp byte[1] 'temporäres Datenbyte define temp2 byte[2] 'temporäres Datenbyte define i byte[3] define ack byte[4] define dataW word[3] define dataWhi byte[5] define dataWlo byte[6] define Temperatur word[4] define Feuchte word[5] define tempW2 word[6] define rel byte[13] 'Byte-Puffer für rel1 bis rel8 define rel1 bit[97] 'Relais 1 define rel2 bit[98] 'Relais 2 define rel3 bit[99] 'Relais 3 define rel4 bit[100] 'Relais 4 define rel5 bit[101] 'Relais 5 define rel6 bit[102] 'Relais 6 define rel7 bit[103] 'Relais 7 define rel8 bit[104] 'Relais 8 define rn byte[14] 'Relaisnummer gosub SHTinit #messen Temperatur = SHTgettemp Feuchte = SHTgethyg put 12 print "Temperatur:", print Temperatur '/100;",";abs((Temperatur/10))mod 10;abs(Temperatur mod 10);"°C" print "Feuchte: ", if Feuchte>=0 then print Feuchte else print "Fehler" '/10;",";Feuchte mod 10;"%rH" else print "Fehler" pause 50 gosub Lüfter goto messen #Lüfter rel = 0 if temperatur >3200 then rel1=on if temperatur >3100 and <=3200 then rel2=on if temperatur >3000 and <=3100 then rel3=on if temperatur >2900 and <=3000 then rel4=on if temperatur >2800 and <=2900 then rel5=on if temperatur >2700 and <=2800 then rel6=on if temperatur >2600 and <=2700 then rel7=on if temperatur >2500 and <=2600 then rel8=on goto next #zurück return #next gosub shift pulse ST goto zurück #shift for rn=7 to 0 step -1 DS=(rel shr rn) and 1 pulse SH next return '-------------------------------- benötigt für sensor ----------------------------------------------- #SHTinit deact Data Clock = 0 for i=0 to 10 pulse Clock return #SHTstart Clock =-1 Data = 0 Clock = 0 Clock =-1 deact Data Clock = 0 return #SHTwrite for i=0 to 7 if (temp shl i) and &h80 then deact Data else Data = 0 pulse Clock next i deact Data Clock = -1 temp=(Data=0) Clock =0 return temp #SHTread temp=0 for i=0 to 7 Clock =-1 temp=(temp shl 1) or (Data and 1) Clock = 0 next i if ack then Data = 0 else deact Data pulse Clock deact Data return temp #SHTreadint tempW = timer #SHTwloop if timer-tempW>=50 then return &hF000 if Data then goto SHTwloop ack = 1 dataWhi=SHTread 'High-Byte ack = 0 dataWlo=SHTread 'Low-Byte return dataW #SHTgettemp gosub SHTstart temp = &b00011 : gosub SHTwrite dataW = SHTreadint-4000 return dataW #SHTgethyg gosub SHTstart temp = &b00101 : gosub SHTwrite Feuchte=SHTreadint if Feuchte and &h8000 then return -1 tempW = Feuchte shr 4 i = Feuchte mod 16 looktab shtab,tempW,tempW2 tempW = tempW - 1 looktab shtab,tempW,tempW tempW2 = ((tempW2 - tempW) * i) shr 4 Feuchte = tempW + tempW2 return Feuchte table shtab "sht.tab" |
| Antwort schreiben |