Komponenter:
Batteri, 5V regulator, ATtiny15, 220 ohm motstånd, knapp, IR-diod, kabel.
Inget schema, men det är trivialt, IR-dioden är kopplad till PB1, 5V till VCC och RST samt 0V till GND. Knappen bryter helt enkelt batterispänningen.
Viktigast av allt, här är koden:
Mikrokontrollern hade jag liggandes i en låda. Jag var lyckligt ovetandes att den var en utgående modell, anledningen var uppenbarligen att den saknar RAM-minne, vilket jag upptäckte när en for-loop inte fungerade. Jag kompilerade koden som en ATtiny25 eftersom det inte fanns stöd för ATtiny15, och fick därför definera om OCR1B som har bytt plats bland registren.
Kod: Markera allt
#define F_CPU 1600000UL
#include <stdio.h>
#include <avr/io.h>
#include <util/delay.h>
#define PWM_ON TCCR1 |= _BV(6);
#define PWM_OFF TCCR1 &= ~_BV(6);
#define TCCR1   _SFR_IO8(0x30)
#define OCR1A   _SFR_IO8(0x2E)
#define OCR1B   _SFR_IO8(0x2D)
#define PWM_PIN PB1
#define PWM_PORT PORTB
#define PWM_DDR DDRB
void ioinit(void)
{
	PWM_PORT &= ~_BV(PWM_PIN);
	PWM_DDR |= _BV(PWM_PIN);
}
void one(void)
{
	PWM_ON
	_delay_us(250);
	_delay_us(150);
	PWM_OFF
	_delay_us(250);
	_delay_us(250);
	_delay_us(250);
	_delay_us(250);
	_delay_us(210);
}
void zero(void)
{
	PWM_ON
	_delay_us(250);
	_delay_us(150);
	PWM_OFF
	_delay_us(250);
	_delay_us(130);
}
void start(void)
{
	char a;
	PWM_ON
	for (a = 0; a < 38; a++) {
		_delay_us(250);
		if (a == 24) {
			PWM_OFF
		}
	}
}
void sendchar(char data)
{
	char a;
	for (a = 0; a < 8; a++) {
		if (data & 0x01) {
			one();
		} else {
			zero();
		}
		data = data >> 1;
	}
}
int main(void)
{
	char a;
    ioinit ();
	TCCR1 = 0x23;
	OCR1A = 59;
	OCR1B = 119;
	while (1) {
		start();
		sendchar(0b10000110);
		sendchar(0b00111011);
		sendchar(0b00000001);
		sendchar(0b11111110);
		one();
		for (a = 0; a < 250; a++) {
			_delay_us(250);
		}
	}	
    return 0;
}

Slutligen, ja jag är medveten om att man kan köpa en fjärrkontroll för 30 kr inklusive frakt från kina, men vafan.

 
				









 
 







 av ett lagom stort fotoblixt rör o en skärm inverter.
  av ett lagom stort fotoblixt rör o en skärm inverter. 




