20-02-2018, 08:25
(20-02-2018, 00:29)OMK napisał(a): A nie wystarczy dodać kondensator elektrolityczny?
Nie próbowałem, nie wiem gdzie w układ go wpiąć? Wolałbym załatwić to programem.
Program mam ściągnięty- zachwalają, że działa "dzięki super itp itd" więc może ja coś pomieszałem od wiersza 30 // zrób coś tutaj.
Kod:
volatile byte pulse = 0;
ISR(TIMER2_COMPB_vect){ // Przerwanie procedury serwisowej w celu impulsu modulowanego wtyku 3
pulse++;
if(pulse >= 8) { // zmienić liczbę cykli modulacji w impulsie
pulse =0;
TCCR2A ^= _BV(COM2B1); // włącz sworzeń 3, włączając i wyłączając pinezkę
}
}
void setIrModOutput(){ // ustawia szpilkę 3 przechodząc na szybkość modulacji IR
int A = A0;
pinMode(3, OUTPUT);
pinMode(A, INPUT);
TCCR2A = _BV(COM2B1) | _BV(WGM21) | _BV(WGM20); // Po prostu włącz wyjście na Pin 3 i wyłącz je na Pin 11
TCCR2B = _BV(WGM22) | _BV(CS22);
OCR2A = 51; // definiuje częstotliwość 51 = 38,4 kHz, 54 = 36,2 kHz, 58 = 34 kHz, 62 = 32 kHz
OCR2B = 25; // zadaje cykl roboczy - Połowa wartości OCR2A dla 50%
TCCR2B = TCCR2B & 0b00111000 | 0x2; // wybierz wartość prescale wynoszącą 8: 1 zegara systemowego
}
void setup(){
setIrModOutput();
TIMSK2 = _BV(OCIE2B); // Wyjście Porównaj Dopasuj B Przerwij Włącz
}
void loop(){
// zrób coś tutaj
int pot = (analogRead(A0));
int pot2 = (pot/4);
pinMode(3, pot2);
}