Gast
#6562531
Hallo ich habe folgendes Proble
ich will mit hilfe eines Mikrofons einen Motor steuern und ihn je nach
dem wie laut der Sound des Mikros ist schneller oder langsamer drehen
lassen.
Code:
uint16_t ADC_Read( uint8_t channel )
{
// Kanal waehlen, ohne andere Bits zu beeinflußen
ADMUX = (ADMUX & ~(0x1F)) | (channel & 0x1F);
ADCSRA |= (1<<ADSC); // eine Wandlung "single conversion"
while (ADCSRA & (1<<ADSC) ) { // auf Abschluss der Konvertierung
warten
}
return ADCW; // ADC auslesen und zurückgeben
}
uint8_t change(uint8_t x, uint8_t in_min, uint16_t in_max, uint8_t
out_min, uint8_t out_max)
{
return (uint16_t)(x - in_min) * (out_max - out_min) / (in_max -
in_min) + out_min;
// i - 0 * 255 -
0 / 1023 - 0 + 0
}
if ((PINC&(1<<PORTC3)) && (PINC&(1<<PORTC2)))
{
Micro = Sound;
Drehzahl= change(Micro,0,1023,0,255);
OCR0A = Drehzahl;
}
mein bisheriger code (ohne initialisierung dachte dann wäre zu viel
code) sieht so aus und ich weiß nicht wieso er nicht funktioniert, habe
schonn alles mögliche probiert
(Sound wird so eingelesen Sound = ADC_Read(PortC5))