Strömbryarte via IR

Berätta om dina pågående projekt.
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Inlägg av Korken »

Hmm, de va en ganska smart idé men lät ganska krånglig.
Så då kan man modulera den modulerade signalen såhär (exempel med stor delay):

Kod: Markera allt

//@ 2Mhz - _delay_loop_2(370) ger bästa resultatet på min µC

while(1)
{
	for(int i = 0; i < 10; i++)
	{
		sei();
		_delay_loop_2(370);
		cli();
		_delay_loop_2(370);
	}
	_delay_loop_2(65000);
}
Det fungerar bra på sändar sidan och motagar sidan (dioden blinkar) och det är bara å kolla input på en pinne och se om delayen mellan blinkningarna är i rätt tidsinterval.
Men jag har varit på cykel tur idag så ha inte koda klart mottagaren, men de borde gå fort. :)

//Emil
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Inlägg av Korken »

Jaha, kan ge en snabbis update.

Har beställt lite µCs som vart tiny45or så ja slipper assembly koda med tiny12/15. Förutom de är nästan allt klart.

Ska gö mitt första kretskort för livet imorrn! :D
...och en knapp till dosan, blir typ nå enkelt, 2kablar?
För knappen finns men inte kontakten i kanppen. :P

Ska fixa upp lite bilder imorrn så ni ska få se min kretskorts tillvärkning! :)
Whish me luck!

//Emil
Användarvisningsbild
JimmyAndersson
Inlägg: 26544
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Lycka till! :)

Håller båda tummarna.
Snygg liten dosa förresten!
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Inlägg av Korken »

Ok! Nu har jag etsat mitt första kretskort och det först vart katastrof, altså helt åt skogen men det andra vart ganska bra tycker jag. :D

Såhär såg min layout ut:
Bild

Här står jag och etsar med varmt vatten runt byttan så vätskan håller sig varm:
Bild

Och såhär blev det, det vart lite tunna ledare men vad kan de bero på?
Bild

Nu så väntar jag bara på tiny45an och sedan blir det lite borrning och lödning! :D

//Emil
Användarvisningsbild
JimmyAndersson
Inlägg: 26544
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Jag har likadana gula handskar. :)

Resultatet ser bra ut. Vet inte varför bara vissa ledare blev tunnare, men det ser ut som om det har med exponeringen (belysningen) att göra. Annars beror det nog på att det inte var tillräckligt med färg/tejp (eller vad du använde) just där det blivit tunnare.

Ganska lagom att börja etsa ett så litet kort.
15 hål att borra. Tänk om alla kort hade så få hål.. :)
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Inlägg av Korken »

På tal om borrning så nu när ja testade så pajjade min 0,8mm borr (tror jag tröck lite för hårt). :?
Men ska köpa på mig några imorron. :D

Harför mig att sodjan sålde borrar ganska billigt?

//Emil
Användarvisningsbild
JimmyAndersson
Inlägg: 26544
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

"Harför mig att sodjan sålde borrar ganska billigt?"

Jodå. Klicka här. :)
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Inlägg av Korken »

Jaha, nu när det sköna sommarlovet är slut så får man börja med allt igen och jag har gjort klart lite mer.

Jag har borrat mitt första kretskort och lött det.
Det vart lite snett och lödningarna var tvungna att va på ovansidan för att få platts så de vart lite kladit men det funkar! :)
Och det är ett nytt kretskort då jag märkte ett design fel och då testade jag med 4min i UV-boxen och nu är det fina banor. :D

Så nu ska jag fixa klart knappen den ska det vara bara å testa.

Bild: http://img241.imageshack.us/img241/9272 ... orttf1.jpg
Fint? Nej, men funktionellt.

//Emil
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Inlägg av Korken »

Jaha, har gjort klart resten.
Knapp och batterikontakterna, inte snygt men somsagt, det fungerar. :)

Bild: http://img93.imageshack.us/img93/2835/s ... larjk9.jpg

//Emil

Edit: Jag ska gö klart mottagaren nu och koden för den.

Edit2: När jag kollar på databladet för mottagar modulen så förstår jag inte riktigt hur dem menar att man ska göra. Ska man bara koppla uCn till + å - och en pinne på OUT?
Bladet: http://www.elfa.se/pdf/75/07520596.pdf - sidan 5
Baloo
Inlägg: 82
Blev medlem: 21 september 2005, 18:22:03
Ort: Eskilstuna 59 (N59°21'28" E16°29'49")

Inlägg av Baloo »

Om Du tittar på vilket enkelsidigt kretskort som helst, som inte är ytmonterat, så ser Du att man brukar och bör placera komponenterna på den sidan där INTE kopparmönstret ligger. Om Du har en heltäckande komponent så kommer Du inte åt att löda. Du löder på den sidan som Du gjort nu, men komponenterna ska ligga på andra sidan.
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Inlägg av Korken »

Jotack, jag vet. :)

Fast jag fick det inte och funka med batterihållaren då så jag bet i de sura äpplet å efter lite svordommar så funkade det bra.
Det är väll de som är de viktiga? :)

//Emil
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Inlägg av Korken »

Jaha, nu har jag gjort klart mottagar koden.
Jag väntar bara nu på lite grejer så jag kan gö klart mottagarkortet.

När jag kollar på databladet för mottagar modulen så förstår jag inte riktigt hur dem menar att man ska göra.
Ska man bara koppla uCn till + å - och en pinne på OUT?
Bladet: http://www.elfa.se/pdf/75/07520596.pdf - sidan 5

Koden för mottagaren, använd den hur ni än vill och kom gärna med förbättringar om ni vill:

Kod: Markera allt

/*

This code is made for an ATtiny 45 at 1MHz.
It can be used and remade by anyone as long as is isn't in for product use then please speak to me first.

*/

#define F_CPU 1000000

#include <avr/interrupt.h>
#include <util/delay.h>

void interupt(void);

unsigned int ticks = 0;
unsigned int result = 0;

int main(void)
{
	cli();
	
	DDRB = (0<<0)|(1<<1); // Set PORTB.0 for input and PORTB.1 for output
	PORTB |= (1<<0)|(0<<1); // Enable pullup on PORTB.0 and PORTB.1 low
	
	// The interupt sequence
	PCMSK = (1<<0);
	GIFR = (1<<5)|(1<<6); 
	GIMSK = (1<<5)|(1<<6);
	MCUCR = (1<<ISC01); // Trigger interupt on Falling Edge
	
	// Initialize Timer0.
	// Enable timer0 compare interrupt
	TIMSK = (1<<OCIE0A);
	
	// Sets the compare value
	OCR0A = 100;
	
	// Set Clear on Timer Compare (CTC) mode, No prescaler
	TCCR0A = (1<<WGM01)|(0<<WGM00); // CTC mode
	
	sei();
	
	while(1)
	{
	}
   
	return 0;
}

SIGNAL(SIG_PIN_CHANGE)
{
    interupt(); // Run interupt() on interupt
}

SIGNAL(SIG_OUTPUT_COMPARE0A)
{
	ticks++; // Increase ticks for time mesure
}

void interupt(void)
{
	cli();
	
	if (ticks != 0)
	{
		TCCR0B = 0; // Stop timer
		result = (ticks / 10); // Mesure resault in ms (ticks is in 1/10ms)
		MCUCR = (1<<ISC01); // Trigger interupt on Falling Edge
	}
	else
	{
		ticks = 0; // Reset ticks
		result = 0; // Reset resault
		MCUCR = (1<<ISC01)|(1<<ISC00); // Trigger interupt on Rising Edge
		TCCR0B = (1<<CS00); // Start timer, no prescaler
	}
	
	if ((result <= 105) && (result >= 95)) // Set the time period on which it shall start in ms
	{
		PORTB |= (1<<1); // PORTB.1 high
		
		_delay_ms(100);
		_delay_ms(100);
		_delay_ms(100);
		
		PORTB &= ~(1<<1); // PORTB.1 low
		
		for (int i = 0; i < 10; i++)
		{
			_delay_ms(100); // 1sec delay, we have already started the computer and we doesn't want to shut it down again
		}
	}
	
	sei();
}
Koden är otestad så jag vet inte än om den fungerar.

//Emil
Skriv svar