Pessoal, configurei para um led acender nos tempos abaixo, porem ele realmente acende, porem com tempos dobrados,
Configurei para apagar durante 1 segundo, ele fica 2.
Configurei para acender durante 5 segundos, ele fica 10.
meu arduino na verdade é uma placa que utiliza o atmega 168 pa, é uma placa que possui conectores miso de pinos e tenho que primeiro fazer o código hex e depois usar o progisp para gravar.
Como estou aprendendo estou fazendo todos testes nesse led, fiz total clear no microcontroler, só tem esse pequeno código.
coloco o ckdiv8 em 1
void setup()
{
pinMode(7, OUTPUT);
}
void loop()
{
digitalWrite(7,HIGH);
delay(1000);
digitalWrite(7,LOW);
delay(5000);
}
O problema é que o processador está a correr a (provavelmente) 8MHZ, mas o Arduino pensa que está a correr a 16MHZ.
Tens um cristal ligado ao Arduino? Se sim, retira o cristal e vê se o LED continua a piscar. Se piscar, significa que o processador está a correr com o cristal interno e não com o cristal externo.
Se não quiseres alterar os fuses do controlador, podes sempre seguir as instruções desta página para usar o cristal interno.
Se quiseres usar o cristal externo, podes usar este site para ver qual os valores para programar os fuses:
http://www.engbedded.com/fusecalc/
A escolha que pretendes para um cristal externo de 16MHZ é External Full Swing Crystal.
eu coloquei ckdiv 8 , como 1, no caso é habilitado, podem me ajudar ?
Se não tens cristal o chip está a correr a 8MHz... o Arduino assume que está a correr a 16MHz.
Já viste o site que listei para usar o clock interno??
Consegui a solução
Configure o arduino para lilypad, depois o processador para 168,
configure o progisp para 168pa
ckdiv8
para ver a solução em imagem, veja esse post, também foi eu que fiz.
https://www.avrfreaks.net/forum/atmega-168pa-au-no-crystal-what-setting-use-arduino-record-time-double#comment-2513521