Hi Allen,
Hier wil ik de komende tijd wat schrijf en uitwerk verrichten op de bouw van een fraaie dag en nacht schakeling.
Zie ook het eerdere topic hierover in modelbaanbouw.
In grote lijnen bestaat het uit 3 componenten: huisverlichtingschakeling, dimmer en centrale besturing. In dit topic een stukje uitleg over de verlichting(sprint) in de huizen.
Ik heb nog geen fatsoenlijke tekening van het schema, maar het is erg eenvoudig.
UitgangspuntenIn elk huisje komt onderstaande schakeling. De schakeling zorgt ervoor dat de verlichting in 1 minuut tijd willekeurig aanschakelt, als het ingangssignaal met de massa wordt doorverbonden. Elke keer is dat weer anders, een toevalsgenerator zorgt hiervoor. Zolang het ingangssignaal met massa blijft verbonden, blijft de verlichting aan.
Zodra het ingangssignaal wegvalt, wordt - ook weer willekeurig - de verlichting weer uitgeschakeld ook weer in 1 minuut. Zowel de volgorde als de tijd die er tussen zit, is dus steeds willekeurig.
UitvoerOp 1 print kunnen 5 groepen worden aangestuurd. Daar kan je toch heel wat levendigheid mee nabootsen, zou ik zo denken. Woonkamer, toillet, hal, slaapkamer, zolderkamer etc.
Voor deze schakeling is een heel klein printje ontworpen:
Later zal ik het schema ook nog even proberen te plaatsen:
Even de uitleg bij het print ontwerp. Links onder zit een spanningsregelaar die van de aangeboden gelijkstroom prachtig 5 Volt maakt. Daarnaast zit een kleine condensator van 100nF die de PIC nog even extra afvlakt. De PIC, een programmeerbare Interface Controller is voorzien van een stukje software die dan doet wat hierboven beschreven is. Die moet dus geprogrameerd worden.
Deze PIC is via de software zodanig ingesteld dat er 5 uitgangen beschikbaar zijn en 1 ingang. De uitgangen zijn ´ontkoppeld´, zodat er niet alleen leds aangestuurd kunnen worden, maar ook niet al te veel stroom-vretende lampjes. (50mA).
Dat ontkoppelen gebeurt door een weerstand van 10K toe te voegen die op zijn beurt een transistor (BC547) opgestuurt.
Stuur je 1 led aan, dan wordt deze met serie weerstand van ca. 100 Ohm aangesloten op de 5V achter de spanningsregelaar.
Wil je meer dan 1 led per groep, dat kan. Stel dat de ingangsspanning 15 volt is, en je wil witte leds aansluiten dan kunnen er 3 LEDs (zijn ogeveer 4 Volt) die 20 mA gebruiken. De serie weerstand die dan nog toegevoegd moet worden is ca. 150 Ohm.
Lampjes kunnen, let even op de spanning, zonder voorschakeling van weerstanden aangesloten worden.
Elk huisje kan nu voorzien worden van deze schakeling en worden gekoppeld. Gemeenschappelijk wordt de ´ingang´ die centraal aangestuurd wordt om de dag en nacht in de huizen in gang te zetten.
SoftwareDie is erg eenvoudig. Het is in C geschreven en bestaat uit
een opstart lus (hier worden ook alle lampgroepen kort aangesloten kort aangestuurd, ter visuele controle)
Een routine voor het maken van een tabel met de willekeur aan lampgroepen en een tabel voor de willekeur in de tussenliggende tijden.
En als laatste een wachtlus om te checken of de ingang hoog of laag is.
That´s all.
Een stukje uit de code:
void vultabel() {
bit bLeen;
char n, i;
do {
bLeen = FALSE;
for (n=0; n<5; n++) {
ntabel[n] = rand() % 5;
wtabel[n] = rand() % 20; // wachttabel. 6 wachttijden van gem. 10 sec.
}
for (n=0; n<5; n++) {
for (i=n+1; i<5; i++) {
if (ntabel
== ntabel[n]) {
bLeen = TRUE; // he, een dubbele, doen we dus nog een keer
}// einde if
} // einde for i
} // einde for n
} while (bLeen == TRUE) ;
}
void main()
{
char n, i;
ltabel[0] = 1; // 0
ltabel[1] = 2; // 1
ltabel[2] = 8; // 4
ltabel[3] = 16; // 5
ltabel[4] = 32; // 6
for (i=0; i<2; i++) {
for (n=0; n<5; n++) {
portb = portb ^= ltabel[n];
delay_ms(250);
}
}
srand(100);
while( 1 ) {
vultabel();
while( !porta.3 )
; // wait until released
for (n=0; n<5; n++) {
portb = portb | ltabel[ntabel[n]]; // desbetreffend lamp aan
for (i=0; i<wtabel[n]; i++) {
delay_ms(250); //
} // next i
} // next n
// alle lampen zijn aan
vultabel();
while( porta.3 )
; // wait until released
for (n=0; n<5; n++) {
portb = portb ^= ltabel[ntabel[n]]; // desbetreffend lamp uit
for (i=0; i<wtabel[n]; i++) {
delay_ms(250); //
} // next i
} // next n
// alle lampen zijn uit
} // eind while (1)
}
Nog even wat feitjes
Het printontwerp is in ´Sprint layout´ gemaakt. Met een gratis viewer is deze te bekijken. Ik heb hem op eurokaart gemaakt, alwaar een stuk of 15 printjes per keer gemaakt kunnen worden.
Mocht er nou heel veel belangstelling bestaan, dan kunnen ´we´ misschien via het Forum een keer iets laten maken. Nu is het nog allemaal gewone huisvlijt met belichten en etsen en zo.
De PIC´s moeten voorzien worden van het programma. Dat is een stukje HEX code, kan ook vast via het Forum beschikbaar gesteld worden.
Volgende keer meer over de dimmerschakeling.
Groet,
leendert