Projekt rumsstyrning PIC18 C-kod
Projekt rumsstyrning PIC18 C-kod
Nu har jag hängt här för länge för att kunna hålla mig borta!
Håller just nu på med lite rumsstyrning, vad som är tänkt att kontrolleras är till att börja med persienner och rullgardin, även kopplat till väckning.
Även tänkt att belysningen ska kopplas in.
Allt kommer styras via PIC18, 2550 och ev. även 4550, programmet skrivs i C-kod.
Såhär långt börjar det flesta funktioner bli klara, kan skicka ut servovärden, för att vinkla persienner, och dimmra lampor. läser in AD-värde för att mäta ljusstyrka innanför och utanför fönstret. har en PWM-funktion med MUX för att få en fadande funktion med RGB-LEDs.
Motorer för rullgardin och Persienner sitter på plats.
Har nu stött på problem, skrev kod för att läsa in ett AD-värde från en potentiometer, beroende på innom vilket intervall värdet låg skulle koden göra olika saker.
Fick inte detta att fungera men bantar ner koden allt eftersom och felsöker.
Programmet är skrivet i MPLAB och PICen programmeras med en Microship ICD 2
Lite bilder är väl alltid kul!
Börjar med motorn som drar upp och ner rullgardinen:
Motor
Och så motorn för hissa persienner, hade först en simplare lösning, men trodde inte en så billig skruvdragare skulle gilla den sneda belastningen så kompletterade med ett kullager under, buntbanden kommer så klart klippas så fort jag vet det inte behövs fler justeringar.
Som synes väl tilltagna kablar för de upskattningsvis ca 3A som går i kablarna ;) switchen för att generera avbrott när rullgardinen är nere syns också:
Motor2
Bild på brytaren upptill:
Switch
En display som ska in i systemet, grafisk 240x64 punkter. Inte hunnit testa den än. EL-bakbelyst hoppas den fungerar, gav 100kr för den "begagnad" oanvänd, köpt i en mindre elektronikbutik, såldes som okänd display, därav priset:
Display
edit: Tagit bort koden ovan då ingen direkt lyckades se var felet var, håller sakta på och försöker hitta var jag gjort missen, dock tar skolan en del tid så går inte allt för fort.
Håller just nu på med lite rumsstyrning, vad som är tänkt att kontrolleras är till att börja med persienner och rullgardin, även kopplat till väckning.
Även tänkt att belysningen ska kopplas in.
Allt kommer styras via PIC18, 2550 och ev. även 4550, programmet skrivs i C-kod.
Såhär långt börjar det flesta funktioner bli klara, kan skicka ut servovärden, för att vinkla persienner, och dimmra lampor. läser in AD-värde för att mäta ljusstyrka innanför och utanför fönstret. har en PWM-funktion med MUX för att få en fadande funktion med RGB-LEDs.
Motorer för rullgardin och Persienner sitter på plats.
Har nu stött på problem, skrev kod för att läsa in ett AD-värde från en potentiometer, beroende på innom vilket intervall värdet låg skulle koden göra olika saker.
Fick inte detta att fungera men bantar ner koden allt eftersom och felsöker.
Programmet är skrivet i MPLAB och PICen programmeras med en Microship ICD 2
Lite bilder är väl alltid kul!
Börjar med motorn som drar upp och ner rullgardinen:
Motor
Och så motorn för hissa persienner, hade först en simplare lösning, men trodde inte en så billig skruvdragare skulle gilla den sneda belastningen så kompletterade med ett kullager under, buntbanden kommer så klart klippas så fort jag vet det inte behövs fler justeringar.
Som synes väl tilltagna kablar för de upskattningsvis ca 3A som går i kablarna ;) switchen för att generera avbrott när rullgardinen är nere syns också:
Motor2
Bild på brytaren upptill:
Switch
En display som ska in i systemet, grafisk 240x64 punkter. Inte hunnit testa den än. EL-bakbelyst hoppas den fungerar, gav 100kr för den "begagnad" oanvänd, köpt i en mindre elektronikbutik, såldes som okänd display, därav priset:
Display
edit: Tagit bort koden ovan då ingen direkt lyckades se var felet var, håller sakta på och försöker hitta var jag gjort missen, dock tar skolan en del tid så går inte allt för fort.
Senast redigerad av Frisk 13 november 2007, 23:40:19, redigerad totalt 3 gånger.
Jag har inte kollat koden (och kommer nog inte att kolla
så mycket på den heller), det är lite för mycket för att
det ska vara "kul"...
Skriv istället ett litet test-case som testar just det du verkar ha
problem med (alltså varför rBlindUpp inte "ändrar sig"),
så kanske du löser just *det* problemet...
så mycket på den heller), det är lite för mycket för att
det ska vara "kul"...
Skriv istället ett litet test-case som testar just det du verkar ha
problem med (alltså varför rBlindUpp inte "ändrar sig"),
så kanske du löser just *det* problemet...
följer sodjans rekomendation å bantar ner koden tills jag ser vad som är fel, därför borttagen i föregående inlägg (ingen idé att ha kvar kod som ändå inte funkar som den ska)
får se när det finns tid för detta, har nu en annan liten fundering, tänkte ta mig förbi Elfa snart, ska programmera en klocka, tänkte därför köpa med en klockkristall, 32768Hz, vad ska jag använda för kondensatorer till denna? står på Elfas hemsida 12.5pF lastkapacitans, men står i PIC-databladet att det ska vara 33pF, vilket ska jag använda? Eller är lastkapacitansen intern kapacitans på kristallen?
får se när det finns tid för detta, har nu en annan liten fundering, tänkte ta mig förbi Elfa snart, ska programmera en klocka, tänkte därför köpa med en klockkristall, 32768Hz, vad ska jag använda för kondensatorer till denna? står på Elfas hemsida 12.5pF lastkapacitans, men står i PIC-databladet att det ska vara 33pF, vilket ska jag använda? Eller är lastkapacitansen intern kapacitans på kristallen?
Sådär, hänt lite till nu i alla fall, kanske inte just på övrigt, men i alla fall kommit en bit på tillhörande klocka, ska styras med en MUX som tänder 1-8 på samtliga LEDs, sen därunder jordar man en av 6 grupper för att väja vilken som ska tändas, sen görs liknande för sekunder, minuter och timmar,mycket lödpunkter, och mycket kopplingstråd kommer det bli.
Här kommer lite bilder, mer kommer efter lysdioder är beställda och mottagna.
En del kapade bitar
några bitar med oslipade sidan uppåt
Flertalet bitar upplagda för test innan allt var monterat
Resultat med alternativ ljuskälla
Här kommer lite bilder, mer kommer efter lysdioder är beställda och mottagna.
En del kapade bitar
några bitar med oslipade sidan uppåt
Flertalet bitar upplagda för test innan allt var monterat
Resultat med alternativ ljuskälla
Senast redigerad av Frisk 15 juni 2007, 23:29:56, redigerad totalt 1 gång.
Tack för komentarerna!
Har nu kopplat upp som jag tänkte, i mindre skala, verkar fungera som planerat. styr nu 8 (9) lysdioder på 4 pinnar.
Vad jag nu skulle vilja göra är att kunna tända 2LEDs på samma gång, eller ja, växla mellan 2 olika så det upplevs så, så när det gått en halv minut lyser "visarna" för både aktuell minut och nästkommande, antar detta går lösa ganska lätt via någon slags loop, men då klockan även ska prata I2C kan jag inte köra en evighetsloop. Någon som har förslag på hur jag löser detta?
Undrar även över I2Cn, hur skriver jag kod med klockan som slav, utan att riskera att I2Cn bryter sekunduppräknandet?
Har nu kopplat upp som jag tänkte, i mindre skala, verkar fungera som planerat. styr nu 8 (9) lysdioder på 4 pinnar.
Vad jag nu skulle vilja göra är att kunna tända 2LEDs på samma gång, eller ja, växla mellan 2 olika så det upplevs så, så när det gått en halv minut lyser "visarna" för både aktuell minut och nästkommande, antar detta går lösa ganska lätt via någon slags loop, men då klockan även ska prata I2C kan jag inte köra en evighetsloop. Någon som har förslag på hur jag löser detta?
Undrar även över I2Cn, hur skriver jag kod med klockan som slav, utan att riskera att I2Cn bryter sekunduppräknandet?
Sådär, nu börjar det bli klart, ska bara kopplas in som det är tänkt.
Mycket snabb och fin leverans, som vanligt, från upplyst.se, när jag väl lyckades få iväg beställningen.
En liten leverans av lysdioderUnigefär hälften av lysdioderna limmade på plats[/url]
Ett exempel på hur det ser ut när flera färger lyser samtidigt (Blå och röd)
Såhär skulle det kunna se ut när klockan är i bruk
Mycket snabb och fin leverans, som vanligt, från upplyst.se, när jag väl lyckades få iväg beställningen.
En liten leverans av lysdioderUnigefär hälften av lysdioderna limmade på plats[/url]
Ett exempel på hur det ser ut när flera färger lyser samtidigt (Blå och röd)
Såhär skulle det kunna se ut när klockan är i bruk
- Housepainter
- EF Sponsor
- Inlägg: 1318
- Blev medlem: 19 juli 2006, 18:50:38
- Ort: Borås
- JimmyAndersson
- Inlägg: 26308
- Blev medlem: 6 augusti 2005, 21:23:33
- Ort: Oskarshamn (En bit utanför)
- Kontakt:
Sådär,dags för en liten uppdatering, allt har inte stannat upp, helt, men var 2 tunga kurser i skolan förra perioden så gått väldigt långsamt, i alla fall gjort klart fönsterbelysningen nu, blev såhär:
Bild1
Bild2
Småsvårt att ta bilder på belysningar,men hoppas det duger.
Även jobbat lite med displayen,utan allt för lyckat resultat,men tror mig ha ett fungerande program snart...
Klockkortet kan nog anses som klart nu, tror jag, ska skicka iväg filerna snart så jag kan få ett etsat kort. Skulle kunna göra det i skolan men känns som det är mer jobb än nöje, i alla fall när det inte verkar vara några fler som ska etsa kort just nu. Känns onödigt att dra igång allt för att göra ett kort.
Edit: nya länkar.
Bild1
Bild2
Småsvårt att ta bilder på belysningar,men hoppas det duger.
Även jobbat lite med displayen,utan allt för lyckat resultat,men tror mig ha ett fungerande program snart...
Klockkortet kan nog anses som klart nu, tror jag, ska skicka iväg filerna snart så jag kan få ett etsat kort. Skulle kunna göra det i skolan men känns som det är mer jobb än nöje, i alla fall när det inte verkar vara några fler som ska etsa kort just nu. Känns onödigt att dra igång allt för att göra ett kort.
Edit: nya länkar.
Senast redigerad av Frisk 15 februari 2008, 19:47:10, redigerad totalt 1 gång.