Pessoal, boa noite!
Eu fiz um receptor IR com arduino, porém queria tranferir
esse projeto para um Attiny 85, minha dúvida é se ele
tem todos os recursos que o Arduino tem pra esse projeto.
Acredito que memória não vai ser problema devido ser apenas
3 dispositivos a ser controlados. Alguém pode tirar essa dúvida?
Tags:
Tens que ver a questão do "funcionamento" das bibliotecas no Attiny, Posta teu código ai pro pessoal estudar.
Galera segue o código.
Na compilação está dando os seguintes erros:
sketch_nov05a.cpp: In function ‘void setup()’:
sketch_nov05a.cpp:20:3: error: ‘Serial’ was not declared in this scope
sketch_nov05a.cpp: In function ‘void loop()’:
sketch_nov05a.cpp:30:5: error: ‘Serial’ was not declared in this scope
Código Fonte:
#include "WProgram.h"
#include <NECIRrcv.h>
#define InfraVermelho 2
#define bw 3843714561
#define video 4027543041
#define vh 4244794881
int lampada = 8 ; //pino que sai 5v para acender lampada.
int ventilador = 12 ; //pino que sai 5v para ligar ventilador.
int portao = 13 ; //pino que sai 5v para abrir po
unsigned long int capturaCodigo = 0;
NECIRrcv ir(InfraVermelho) ;
void setup() {
Serial.begin(9600);
pinMode(lampada, OUTPUT);
pinMode(ventilador, OUTPUT);
pinMode(portao, OUTPUT);
ir.begin();
}
void loop() {
while (ir.available()) {
capturaCodigo = ir.read();
Serial.println(capturaCodigo);
if(capturaCodigo == bw) {
int estadoLed = digitalRead(lampada);
if(estadoLed == LOW)
{
digitalWrite(lampada, HIGH);
Serial.println("ligada");
}
else {
digitalWrite(lampada, LOW);
Serial.println("Desligada");
}
}
if(capturaCodigo == video) {
int estadoLed2 = digitalRead(ventilador);
if (estadoLed2 == LOW)
{
digitalWrite(ventilador, HIGH);
Serial.println("ligada");
}
else {
digitalWrite(ventilador, LOW);
Serial.println("Desligada");
}
}
if(capturaCodigo == vh) {
int estadoLed3 = digitalRead(portao);
if(estadoLed3 == LOW)
{
digitalWrite(portao, HIGH);
delay(10);
digitalWrite(portao, LOW);
}
else {
digitalWrite(portao, LOW);
Serial.println("Desligada");
}
}
}
}
A Attiny não tem porta serial UART por hardware, apenas SPI. Se você precisar mesmo de uma UART, terá que emular por software. Existe uma lib. pra isso.
Consegue colocar essa lib aqui? tbm preciso dela
Anderson
de cara tem um erro no código, que vc está definindo pinos como 8, 12 e 13. O attiny85 não tem estas portas. ele tem só 8 pinos.
Outra coisa, acho que para vc poder usar função de serial, na IDE 1.0.1 vc consegue gravar bootloader em attiny e usar funções como serial.print. Dá uma olhada, eu não tentei ainda.
Boa sorte, de maneira geral eu não me saio bem com este attiny85. Principalmente quando se trata de bibliotecas. A maioria é feita para atmega328...
se conseguir, posta ai.
Serial?! Consegue, mas é com emulação. Tem a biblioteca SoftwareSerial especifica pro Attiny, assim como tem TinyWire pra I²C.
Ja usei alguns Attiny principalmente como Driver ou processador secundário, interligando a um microcontrolador mestre por I²C, o "problema" do attiny é o numero limitado de comandos:
Reference
The following Arduino commands should be supported:
- pinMode()
- digitalWrite()
- digitalRead()
- analogRead()
- analogWrite()
- shiftOut()
- pulseIn()
- millis()
- micros()
- delay()
- delayMicroseconds()
- SoftwareSerial (has been updated in Arduino 1.0)
References
- arduino-tiny: alternative approach to ATtiny support for Arduino
- TinyWireM & TinyWireS: Wire (I2C / TWI) library for the ATtiny85 (using USI)
- Servo8Bit: Servo library for the ATtiny45/85.
Isso Jonatas, não é serial, e sim estava falando de softwareSerial. Como não entendo direito, coloquei uma definição que pode confundir.
Valeu
Mas são somente esses comandos?
Você pode passar mais detalhes do seu projeto ? Estou querendo montar um receptor de IR mas não consigo encontrar o decodificador de IR (PNA4602, TSOP382 e TSOP1838 foram os que procurei). Você usou um CI decodificador ou projetou um circuito ?
[]'s
Renato.
Renato, eu retirei o IR de um dvd queimado e fiz o esquema no arduino. No próprio arduino vc faz um circuito para capturar o código das teclas que vc vai usar. Aí é montar o esquema e programar. Aí vc vai fazer um circuito para excitar os relés com as saidas do arduino. Eu queria usar o CI para fazer isso, pois num queria "gastar" minha arduino pra isso, mas estou encontrando dificuldades. Mas no arduino é simples. Os esquemas não estão aki nesnte pc quando chegar em casa eu posto.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por