Få in skiftschema i arduino.
Få in skiftschema i arduino.
Jag tänkte bygga mig en motor/kupe värmarstyrning, då vore det ju rätt smidigt om man slapp ställa in tiden för avresa, utan elektroniken håller reda på hur och när jag jobbar.
Trycka i sladden mellan uttaget och bilen och rör man inte nått så sköter allt sig själv. Oavsett att jag går från förmiddag till eftermiddag till natt för att sedan friveckan inte ha nått i programmet.
Jag skulle vilja få in mitt skiftschema i en arduino, göra koden för skiftschemat helt enkelt och jag funderar på hur och om det finns någon genväg.
Måste ju såklart ha en RTC, jag frågar för det kanske finns nått finulligt sätt jag inte känner till.
Men jag kan ha fel, kanske inte är det så krångligt som jag förställer mig.
Trycka i sladden mellan uttaget och bilen och rör man inte nått så sköter allt sig själv. Oavsett att jag går från förmiddag till eftermiddag till natt för att sedan friveckan inte ha nått i programmet.
Jag skulle vilja få in mitt skiftschema i en arduino, göra koden för skiftschemat helt enkelt och jag funderar på hur och om det finns någon genväg.
Måste ju såklart ha en RTC, jag frågar för det kanske finns nått finulligt sätt jag inte känner till.
Men jag kan ha fel, kanske inte är det så krångligt som jag förställer mig.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Få in skiftschema i arduino.
Är du en av A, B, C, D resp E? Räcker det med "din" kollumn?
Är det så att F, E esp N alltid motsvarar samma fasta klockslag?
Det känns som att en array "unsinged char shift[365]" där
varje position har " ", "F", "E" eller "N". Sen så är det ju slöseri
att använda 8 bitar för att koda 4 olika värden (2 bitar räcker)
men då krävs det lite med kod för att hantera det. Det blir
dock en mer kompakt tabell, så klart.
Är det skillnad på t.ex "N" och "N" när det gäller klockslag?
I så fall blir det ju 7 olika värden, " FENFEN".
Hur vill du uppdatera tabellen vid ett nytt år?
Med en hårdkodad tabell för du ju kompilera om en gång per år.
Är det så att F, E esp N alltid motsvarar samma fasta klockslag?
Det känns som att en array "unsinged char shift[365]" där
varje position har " ", "F", "E" eller "N". Sen så är det ju slöseri
att använda 8 bitar för att koda 4 olika värden (2 bitar räcker)
men då krävs det lite med kod för att hantera det. Det blir
dock en mer kompakt tabell, så klart.
Är det skillnad på t.ex "N" och "N" när det gäller klockslag?
I så fall blir det ju 7 olika värden, " FENFEN".
Hur vill du uppdatera tabellen vid ett nytt år?
Med en hårdkodad tabell för du ju kompilera om en gång per år.
Re: Få in skiftschema i arduino.
Jo en kolumn räcka, sedan får man när inställning sker ställa in om man är ledig eller jobbar (F) förmiddag, (E) eftermiddag, (N) natt, eller (L) för ledig.
Jobbar (E) på lördag och (N) på lördag innebär lite andra tider. I övrigt så jobbar vi samma tider oavsett helg, storhelg (röda dagar) som på icke röda dagar.
Så vad jag försöker säga är att (N) och (N) är de samma på klockslaget då skiftet börjar.
Ett sätt skulle vara att knyta varje skift till ett datum, och sedan börja om sista febuari för att där avgöra skott året, men skottår eller inte går ju att förprogrammera.
Ett annat sätt är bara lägga in en hel skiftperiod och sedan börja om, att räkna 0-34 om och om igen utan bortre gräns istället för att räkna 0 - 364.
Dock är det mer användarvänligt att knyta det hela till datum istället för vart i skiftcykeln man befinner sig vid inställning (första gången).
För att alla ska förstå vad jag menar med skiftcykel, 2 januari börjar "A" kolumnen (A-laget) med tre (F), 5 febuari ska de åter börja med 3 (F), det är en skiftcykel, 35 dagar.
"Hur vill du uppdatera tabellen vid ett nytt år?"
Funderar fortfarande på vad som är lättast, måste testa metoderna för att avgöra.
Jobbar (E) på lördag och (N) på lördag innebär lite andra tider. I övrigt så jobbar vi samma tider oavsett helg, storhelg (röda dagar) som på icke röda dagar.
Så vad jag försöker säga är att (N) och (N) är de samma på klockslaget då skiftet börjar.
Ett sätt skulle vara att knyta varje skift till ett datum, och sedan börja om sista febuari för att där avgöra skott året, men skottår eller inte går ju att förprogrammera.
Ett annat sätt är bara lägga in en hel skiftperiod och sedan börja om, att räkna 0-34 om och om igen utan bortre gräns istället för att räkna 0 - 364.
Dock är det mer användarvänligt att knyta det hela till datum istället för vart i skiftcykeln man befinner sig vid inställning (första gången).
För att alla ska förstå vad jag menar med skiftcykel, 2 januari börjar "A" kolumnen (A-laget) med tre (F), 5 febuari ska de åter börja med 3 (F), det är en skiftcykel, 35 dagar.
"Hur vill du uppdatera tabellen vid ett nytt år?"
Funderar fortfarande på vad som är lättast, måste testa metoderna för att avgöra.
Re: Få in skiftschema i arduino.
En RTC hanterar skottår.
Och ja, om skiftcykeln är fast utan hänsyn till underliggande
kalender, så kan man ju bara definiera en startdag och sedan
upprepa det hela med cykeltiden (så som du beskrev) d.v.s
en 35 dagars tabell istället.
Och ja, om skiftcykeln är fast utan hänsyn till underliggande
kalender, så kan man ju bara definiera en startdag och sedan
upprepa det hela med cykeltiden (så som du beskrev) d.v.s
en 35 dagars tabell istället.
Re: Få in skiftschema i arduino.
Skulle det inte vara bättre att styra det från en PC isåfall, eller Raspberry Pi? Jag har gjort ett webbaserat interface för att slå in avfärdstider i en MySQL-databas, sedan håller ett serverprogram skrivet i Python reda på när motorvärmaren ska slås på, utgående från garagets temperatur senaste tre timmar och avfärdstid. T.ex. vid 0C slår den på ungefär en halvtimme före avfärd, och vid -10C 2h före.
Re: Få in skiftschema i arduino.
Som sodjan skriver kan man komprimera tabellen ganska enkelt. Och justering om ett specifikt skift sker en vardag/helg är enkelt också.
I grunden innebär det två tabeller:
1: Skiftrytm-tabell, i detta fall på 35 punkter. Man behöver någon variabel som anger vilket datum som motsvarar ett specifikt punkt i tabellen.
2: En tabell som anger vilka tider som gäller vid de olika skift och veckodagar. Alltså måndag, förmiddag är start xx:xx osv.
Sedan kan man lägga till en temperaturkompensering också om man vill.
Jag har gjort något liknande i en vanlig µC och det fungerar bra. Det svåraste var nog att skriva in scheman på ett begripligt sätt.
I grunden innebär det två tabeller:
1: Skiftrytm-tabell, i detta fall på 35 punkter. Man behöver någon variabel som anger vilket datum som motsvarar ett specifikt punkt i tabellen.
2: En tabell som anger vilka tider som gäller vid de olika skift och veckodagar. Alltså måndag, förmiddag är start xx:xx osv.
Sedan kan man lägga till en temperaturkompensering också om man vill.
Jag har gjort något liknande i en vanlig µC och det fungerar bra. Det svåraste var nog att skriva in scheman på ett begripligt sätt.
Re: Få in skiftschema i arduino.
Måndag, onsdag och fredag är alltid första skiftet för för/eftermiddag och natt. Det är också de dagar man får ledigt.
En räknare 1 till 35 som håller reda på vart i skiftcykeln, det datum man ställer (första gången) blir 1 oavsett var i cykeln och sedan +1 vid midnatt.
Naturligtvis så vill jag att motorvärmaren ska vara temperaturkompenserad, men det är en smal sak.
Lika så ska det vara möjligt att ställa in önska avresetid manuellt och slå på den manuellt via radiolänk.
Vet inte riktigt hur jag ska börja programmet, men får väl börja med att skaffa en RTC och hitta nått exempel program så ger det sig väl en smula.
Vilken RTC kan rekommenderas?
Den kostar 15-20kr och är stor som ett frimärke, ryms ledigt bakom den display den ska driva.
En räknare 1 till 35 som håller reda på vart i skiftcykeln, det datum man ställer (första gången) blir 1 oavsett var i cykeln och sedan +1 vid midnatt.
Naturligtvis så vill jag att motorvärmaren ska vara temperaturkompenserad, men det är en smal sak.
Lika så ska det vara möjligt att ställa in önska avresetid manuellt och slå på den manuellt via radiolänk.
Vet inte riktigt hur jag ska börja programmet, men får väl börja med att skaffa en RTC och hitta nått exempel program så ger det sig väl en smula.
Vilken RTC kan rekommenderas?
Föredrar arduino mini, hitta nått motsvarande som är billigare och enklare är svårt.JanErik skrev:Skulle det inte vara bättre att styra det från en PC isåfall, eller Raspberry Pi? Jag har gjort ett webbaserat interface för att slå in avfärdstider i en MySQL-databas, sedan håller ett serverprogram skrivet i Python reda på när motorvärmaren ska slås på, utgående från garagets temperatur senaste tre timmar och avfärdstid. T.ex. vid 0C slår den på ungefär en halvtimme före avfärd, och vid -10C 2h före.
Den kostar 15-20kr och är stor som ett frimärke, ryms ledigt bakom den display den ska driva.
Re: Få in skiftschema i arduino.
Lite OT men jag läste "skitschema" och tänkte att det typ var ett kasst elschema först.
Sedan när jag såg almanackan i tråden vart jag ställd...."Skiter karln efter schema verkligen ??"
Så kan det gå när man läser lite för snabbt
Sedan när jag såg almanackan i tråden vart jag ställd...."Skiter karln efter schema verkligen ??"
Så kan det gå när man läser lite för snabbt
Re: Få in skiftschema i arduino.
Nån som vet, kan man spara information förutom tid i den här rtc:n eller någon annan?
Tänkte mer om det är nån med praktiska erfarenheter eller kan utläsa det.
Vill kunna spara vilket lag (A till E) som en gång blivit valt så man slipper ställa in det vid varje strömavbrott.
Tänkte mer om det är nån med praktiska erfarenheter eller kan utläsa det.
Vill kunna spara vilket lag (A till E) som en gång blivit valt så man slipper ställa in det vid varje strömavbrott.
Re: Få in skiftschema i arduino.
Utöver RTC sitter det ett EEPROM på 32Kbit 4096*8 så ja, du kan lagra en del.
http://www.atmel.com/images/doc0336.pdf = datablad
http://www.atmel.com/images/doc0336.pdf = datablad
Re: Få in skiftschema i arduino.
Sett det i beskrivning på e-bay, men var osäker på om man har tillgång till det, men det har man alltså.
Re: Få in skiftschema i arduino.
Jag har inte kollat det men det verkar ju sitta 2 chip på kortet. Dessutom finns 56 byte batteribackat RAM i RTC, kanske lättare att jobba med eftersom du ju ändå måste skriva/läsa i det chipet.
Re: Få in skiftschema i arduino.
56 byte räcker gott tror jag.
Läser detta på arduino sidan.
Lustigt, så man får väl byta till DS3231, men skillnaden är väl inte så stor.
Läser detta på arduino sidan.
http://playground.arduino.cc/Main/DS1302Important note : Cheap modules with the DS1302 and DS1307 have often problems with the crystal and the voltage. They often don't work very well. You are strongly advised to use a DS3231, which is very reliable and accurate and needs only a battery to run (the crystal is inside the DS3231).
Lustigt, så man får väl byta till DS3231, men skillnaden är väl inte så stor.
Re: Få in skiftschema i arduino.
DS3231 har inget RAM, finns det moduler med DS3231 och EEPROM?
Det går inte att byta kretsen på en modul med 1307, DS3231 har 16 pinnar
Det går inte att byta kretsen på en modul med 1307, DS3231 har 16 pinnar
Re: Få in skiftschema i arduino.
Ja det har du rätt i, hur skriver man i så fall till EEPROM i arduinon utan PC:n?
Går det att komma EEPROM:et i arduinon så behövs inget extra minne.
edit// Här har vi svaret på frågan...... http://arduino.cc/en/Tutorial/EEPROMWrite
Går det att komma EEPROM:et i arduinon så behövs inget extra minne.
edit// Här har vi svaret på frågan...... http://arduino.cc/en/Tutorial/EEPROMWrite