Desejo ajuda desse fórum no sentido de prover solução para o uso do ATtiny85 usando o Arduino IDE 1.0.4.

O simples teste usando o sketch Blink, alterando o pino de saída de 13 para 0 (zero), mostra uma série de erros na compilação.

Usei inicialmente a sugestão contida em http://labdegaragem.com/forum/topics/attiny85-16mhz-com-oscilador-i... para dotar o ATtiny85 de 16MHz.

Em G:\Arduino_104\arduino-1.0.4\hardware\arduino\cores\arduino são encontrados os arquivos listados no ANEXO 1.

No ANEXO 2 estão aos “boards” instaladas.

No ANEXO 3 a IDE do Arduino 1.0.4 com o código e os erros de compilação.

Caso sejam necessárias mais informações para melhor análise do assunto, poderei enviá-las.

 Antecipadamente agradeço a ajuda dos participantes do fórum.

 

 

Exibições: 1123

Anexos

Responder esta

Respostas a este tópico

Paulo, porque vc incluiu a biblioteca Arduino.h e pins arduino.h?

Agradeço a atenção do Mauricio e do Ric4rdo.

Usei como sugerido o conteúdo de tiny.zip, mas, não houve sucesso no acionamento de servo pelo ATtiny85.

Fiz bootloader para 1MHz, 8MHz e 16MHz (Anexo4.jpg). O servo "crispa" e não entende a diferença de tensão gerada no potenciômetro usando o código do Anexo5.jpg. Substitui a função "map" por cálculo simples da posição que o servo de tomar conforme a seguir: val = val * 179;   val = val / 1023;

O servo continuou "crispando".

Há na rede um código para servo fazendo "SWEEP" com a biblioteca SoftwareServo, mas, não é o meu objetivo.

Se ainda restar alguma sugestão ficarei grato. Caso contrário terei que apelar para outra hardware.

Grato a vocês.

Anexos

Vai no diretório do arduino, abra a pasta hardware e descompacte o arquivo em anexo. Vai ser criada uma pasta "tiny". Essa pasta contém todos os arquivos necessários, perfeitamente configurados e prontos para usar.

Possui suporte para:  ATtiny24, ATtiny44, ATtiny84, ATtiny25, ATtiny45, ATtiny85, ATtiny2313 e ATtiny4313.

Anexos

Agradeço a atenção do Mauricio e do Ric4rdo.

Usei como sugerido o conteúdo de tiny.zip, mas, não houve sucesso no acionamento de servo pelo ATtiny85.

Fiz bootloader para 1MHz, 8MHz e 16MHz (Anexo4.jpg). O servo "crispa" e não entende a diferença de tensão gerada no potenciômetro usando o código do Anexo5.jpg. Substitui a função "map" por cálculo simples da posição que o servo de tomar conforme a seguir: val = val * 179;   val = val / 1023;

O servo continuou "crispando".

Há na rede um código para servo fazendo "SWEEP" com a biblioteca SoftwareServo, mas, não é o meu objetivo.

Se ainda restar alguma sugestão ficarei grato. Caso contrário terei que apelar para outra hardware.

Grato a vocês.

Anexos

Paulo, 

Como não sei o nível e conhecimento que vc tem. Vou dar conselho para iniciante, ok:

faça o código primeiro funcionar no UNO ou no 2009, e depois faça o upload no Attiny só mudando a pinagem se for o caso.Muitas vezes o código tem erros, e descobrir depois fica mais difícil.

Este efeito do Servo "crispando" arriscaria dois palpites:

1) Eu não uso o "refresh" que vc colocou no seu código (mas podem ser que eu use  uma biblioteca diferente)

2) outra causa comum, é não ligar os GNDs (mas isso só se vc estiver usando duas fontes de alimentação (pilha para o servo e USB para o arduino, por exemplo).

Abç e boa sorte ai.

Abaixo o código (Knob) capturado da biblioteca de exemplos e com a troca de "Servo.h" por "SoftwareServo.h". Funciona perfeitamente bem com Arduino NANO (e com certeza no UNO) alimentado por fonte regulada (7808) de 8V, enquanto o servo motor é alimentado também por fonte regulada (7805). O polo negativo (GND) é comum às duas fontes de alimentação.

O jeito é continuar pesquisando.

Obrigado pelo interesse no assunto.

 

 

// Controlling a servo position using a potentiometer (variable resistor) // by Michal Rinott a href="http://people.interaction-ivrea.it/m.rinott">http://people.interaction-ivrea.it/m.rinott>

#include <SoftwareServo.h>  

SoftwareServo myservo;  // create servo object to control a servo  

int potpin = 0;  // analog pin used to connect the potentiometer

int val;    // variable to read the value from the analog

pin   void setup() {  

myservo.attach(9);  // attaches the servo on pin 9 to the servo object

}  

void loop() {

  val = analogRead(potpin);            // reads the value of the potentiometer (value between 0 and 1023)   val = map(val, 0, 1023, 0, 179);     // scale it to use it with the servo (value between 0 and 180)      myservo.write(val);                  // sets the servo position according to the scaled value   SoftwareServo::refresh();                           // waits for the servo to get there }

A biblioteca SoftwareServo eu nunca testei mas já usei a Servo8Bit nos attinys. Acho que vale a pena testar e ver se resolve o seu problema.

Anexos

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço