/learn.adafruit.com/introducing-trinket/introduction
Você já usou o ATtiny 85? comprei dois recentemente.
Como eles tem o encapsulamento SOIC, irei usar a minha gambiarra adaptadora:
http://labdegaragem.com/profiles/blogs/adaptador-para-circuitos-smd...
…
opic,54788.msg707885.html#msg707885
/* ARDUINO DECODIFICADOR HT6P20B COM RESISTOR DE 2M2 NO OSC.ESTE CÓDIGO NÃO USA TIMER, INTERRUPÇÃO EXTERNA E NEM PINO DEFINIDO DE ENTRADA.ELE MEDE O TEMPO DO PILOT PERIOD E COMPARA SE ESTÁ DENTRO DA FAIXA DEFINIDA,SE TIVER ELE PASSA PARA CODE PERIOD E FAZ AS MEDIDÇÕES DE TEMPO EM NIVEL ALTOSE TIVER DENTRO DA FAIXA ACRECENTA BIT 1 OU 0 NA VARIAVEL _DATA CASO NÃO ZERA AS VARIÁVEIS E RE-INICIAAPOS RECEBER TODOS OS BITS ELE PEGA OS 4 BITS DO ANTE CODE E TESTA PARA SABER SE O CÓDIGO FOI RECEBIDO CORRETAMENTE, CASO RECEBIDO CERTO ELE COLOCA A VARIAVEL ANTCODE EM 1.CRIADO POR: JACQUES DANIEL MORESCODATA: 28/02/2012 USANDO ARDUINO 0022.FONES:54 3324 2251 54 9206 7168E-MAIL: ibisul@ibisul.com.brPermitido o uso público, mas deve-se manter o nome do autor.*/int x,startbit,ctr,dataok,t1,larpulso,larpulso1,larpulso2,larpulso3,larpulso4,bt1,bt2,antcode=0;unsigned long _data=0; // DATA é o Código recebio do HT6p20 todos os 28 BITS onde, 22 do coodigo+2 dos botões+4 do anti-codigo;unsigned long _dur,_dur1; // Duração do Pulsobyte _pin; // Pino que vai receber o sinal RF digital.void setup(){ _pin=2; Serial.begin(9600); pinMode(2, INPUT); pinMode(13, OUTPUT);}void loop(){ digitalWrite(13, digitalRead(2)); //Pisca o LED conforme o valor da entrada digital, testar interferencias.if (startbit==0) {// Testa o tempo piloto até o Bit de inicio; _dur = pulseIn(_pin, LOW); if(_dur > 8000 && _dur < 12000 && startbit==0) { larpulso=_dur/23; larpulso1=larpulso-50; larpulso2=larpulso+50; larpulso3=larpulso+larpulso-50; larpulso4=larpulso+larpulso+50; startbit=1; _dur=0; _data=0; dataok=0; ctr=0; } } // Se o Bit de inicio OK ENTÃO Inicia a medição do tempo em Nivel ALTO dos sinais, e testa se o tempo está na faixa.if (startbit==1 && dataok==0 && ctr < 28) { ++ctr; _dur1 = pulseIn(_pin, HIGH); if(_dur1 > larpulso1 && _dur1 < larpulso2) // Se a largura de pulso é entre 1/4000 e 1/3000 segundos { _data = (_data << 1) + 1; // anexar um * 1 * para a extremidade mais à direita do buffer } else if(_dur1 > larpulso3 && _dur1 < larpulso4) // Se a largura de pulso é entre 2/4000 e 2/3000 segundos { _data = (_data << 1); // anexar um * 0 * para a extremidade mais à direita do buffer } else { /* força finalização do laço */ startbit=0; } } if (ctr==28) { if (bitRead(_data,0)==1) { if (bitRead(_data,1)==0) { if (bitRead(_data,2)==1) { if (bitRead(_data,3)==0) { antcode=1; } } } } if (antcode==1) {// Se foram recebidos todos os 28 Bits, o valor vai para a variavel _data e pode ser usada como exemplo abaixo. dataok=1; Serial.println(_data,BIN); ctr=0; startbit=0; antcode=0; delay(100); } }}
…
Ou também tem aquela possibilidade já dita antes de usar um ATtiny 85 somente para decodificar o código recebido.
E o Arduino seria ainda o gerenciador do Alarme.
Qual das duas opções vamos seguir?
888, 9.77777
Porém quando uso o Serial.println com a linha na leitura do arquivo, é retornado na Porta Serial o seguinte resultado:
50
46
57
57
57
57
44
32
53
46
54
54
54
54
54
13
10
52
46
56
56
56
56
56
44
32
57
46
55
55
55
55
55
O código que modifiquei ficou da seguinte forma:
#include <SPI.h>#include <SD.h>
File myFile;
void setup() {
String linha; Serial.begin(9600); while (!Serial) { ; }
Serial.print("Inicializando cartão SD...");
if (!SD.begin(53)) { Serial.println("initialization failed!"); return; }
Serial.println("SD inicializado");
myFile = SD.open("test.txt"); if (myFile) { while (myFile.available()) {
linha = myFile.read(); Serial.println(linha); } myFile.close(); } else { Serial.println("Erro ao abrir cartão SD"); }}
void loop() {}
Sabe me dizer porque está retornando estes valores?
Desde já agradeço pela sua atenção.…
Adicionado por Lucas Machado ao 15:39 em 21 março 2016
s abaixo ou acima das temperaturas desejadas. A comunicação é feita por 1-Wire, ou seja, precisa apenas de 1 pino do microcontrolador para transferir os dados. Pode operar entre -55°C até +125°C e com precisão de ±0.5°C se estiver operando dentro da faixa de -10°C até +85°C. Cada DS18B20 possui um número serial único de 64-bit, o que permite que vários DS18B20 funcionem no mesmo barramento 1-Wire, permitindo conectar vários sensores em um microcontrolador.
É superior aos modelos DS1820 e DS18S20.
Características:
- Comunicação 1-Wire, que necessita apenas de um pino do microcontrolador para fazer a linha de dados;
- Opera de 3V a 5.5V e pode ser alimentado pela linha de dados;
- Opera entre -55ºC até +125ºC, sendo a precisão de ±0.5°C se estiver operando dentro da faixa de -10°C até +85°C;
- resolução configurável pelo usuário de 9-bit à 12-bit;
- possui função de alarme programável;
- possui número de série único de 64-bit, o que permite ligar vários sensores no mesmo microcontrolador;
- Encapsulamento metalico, vedado com cola e tubo isolante termoretrátil garatindo isolamento e proteção da água;
- Ponteira metálica pode ficar submersa (6 * 45 mm)
- Possui cabo de ligação de 1 metro;
- Fio Vermelho(VCC), Branco (DATA), preto (GND…