He conectado una terminal de foto-resistencias al PIN ADC0 (PC0) de atmega320, la otra a 5V y la tercera a tierra mediante la resistencia
Estoy alimentando mi atmega con 3.7v. Mi objetivo es generar el valor de ADC0 en el pin DC6 utilizando PWM. Tengo el siguiente código:
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
initPWM();
initADC();
while(1)
{
startConversion();
OCR0A = ADCH;
_delay_ms(20);
}
}
void initPWM()
{
DDRD = 0b01100000;
TCCR0A = 0b10100011;
TCCR0B = 0b00000001;
}
void initADC()
{
// Internal 2.56V voltage reference
// set ADC0 as the ADC input channel
ADMUX = 0b11000000;
// enable ADC
// set prescaler to 128
ADCSRA = 0b10000111;
}
void startConversion()
{
// enable ADC
// start conversion
// set prescaler to 128
ADCSRA = 0b11000111;
}
Intenté emitir tanto ADCH como ADCL a través de OCR0A, pero la intensidad de la luz del PD6 no cambia, pero si configuro 0CR0A a 255, brilla súper brillante, por lo que PWM está funcionando. Probé el fotorresistor con multímetro y obtengo de 0,6 a 1 V entre el suelo y el ADC0. ¿Alguna sugerencia?