2016-01-30
Ezzel a kapcsolással kicsit Édesapámra is emlékezem. Valmikor a besötétített konyhában a barátjával bütykölt nagyítóval exponáltuk a fotópapírokat. Csinált hozzá valaki telefon tárcsából egy időzítőt, de amikor már nem működött, akkor simán egy kapcsolót használtunk, és számoltunk közben, meddig kell exponálnunk. Ez a kapcsolás pont erre való. A LED helyére meg képzeljünk/tervezzünk egy nagyobb fényforrást. Nem tudom most miért jutott az eszembe egy stadion, aminek világítását ki-be kapcsolgatjuk :). Ennek a kapcsolásnak az az érdekessége, hogy több nyomógomb kezelését teszi lehetővé egyetlen analóg láb segítségével. Ezért írtam az ADC kezelésnél, hogy jó lesz még az a progi, ha mérni akarunk. Lemértem vele az osztón az egyes feszültségeket, és ezek szerint állítottam be a programot. Látható, hogy szükség esetén több gombot is használatunk, vagy egyszerűbb ellenálláshálózatot, ami nem is lineáris lépcsőket produkál.
/*******************************************************************************
* Author - Kiraly Tibor
* http://www.tkiraaly.hu
* Date - 2016.01.30.
* Chip - Atmel ATtiny13A
* Compiler - avr-gcc ( WinAVR)
*
* Idokapcsolo
*
********************************************************************************
* PonyProg Configuration and Security Bits (bepipalva):
*
* CKSEL1 -, CKSEL0 P - Internal Oscillator 9,6 MHz
* CKDIV8 P - Divide clock by 8
*
*******************************************************************************/
#define F_CPU 1,2 MHZ // orajel
#include "tkiraaly_attiny13a.h"
#include <util/delay.h>
// mert ertekek 0xFF, 0xCD, 0x9A, 0x66, 0x33, 0x00
// 255, 205, 154, 102, 51, 0
int main( void)
{
U8 v;
PB0_OUT;
PB0_1;
ADC_8BIT; // 8 bit felbonas
ADC_VREF_AVCC; // a tap a referencia feszultseg
ADC_IN2; // 2. bemenet kivalasztasa
ADC_FREE_RUN; // folyamatos meres
for(;;)
{
while( ADCH > 250); // varakozas gombra
_delay_ms( 20); // beall a bemenet
v= ADCH; // feszultseg stabilizalodott
PB0_0;
if( v > 190) _delay_ms( 3000); // 5 sec
if( v > 140) _delay_ms( 1000); // 2 sec
if( v > 90) _delay_ms( 500); // 1 sec
if( v > 40) _delay_ms( 300); // 0,5 sec
_delay_ms( 200); // 0,2 sec
PB0_1;
_delay_ms( 1000); // 1 sec varakozas
}
}
Itt a vége, fuss el véle, legytek az én vendégeim, innen letölthetitek a programokat, miegymást összecsomagolva.