Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
cc)
Search the Arduino Forum
search
(http://forum.arduino.cc/index.php? Advanced Search (http://forum.arduino.cc/index.php?PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&action=search;advanced)
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&) | Arduino Forum
(http://forum.arduino.cc/index.php?
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&) :: Using Arduino (http://forum.arduino.cc/index.php?PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4) :: Networking, Protocols, and Devices
(http://forum.arduino.cc/index.php?PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&board=11.0) :: DECODING HT6P20 WITH attachinterrupt
« previous topic (http://forum.arduino.cc/index.php?PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&topic=175557.0;prev_next=prev#new) next topic » (http://forum.arduino.cc/index.php?
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&topic=175557.0;prev_next=next#new)
Print (http://forum.arduino.cc/index.php?
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&action=printpage;topic=175557.0)
bugalaws
(http://forum.arduino.cc/index.php?
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&action=profile;u=193409) DECODING HT6P20 WITH attachinterrupt (http://forum.arduino.cc/ind
(http://forum.arduino.cc/index.php?
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&topic=175557.msg130273
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&topic=175557.msg1302732#msg1302732)
Offline « on: July 03, 2013, 09:33:58 pm »
Newbie
Karma: 0
Posts: 1 ////////////////////////////////// ENGLISH ////////////////////////////////////////////////////
/*
DECODER WITH ARDUINO HT6P20B 2M2 RESISTOR IN OSC.
(http://forum.arduino.cc/index.php?
USE THIS CODE NO TIMER, INTERRUPTION OR FOREIGN AND PIN SET INPUT.
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&action=profile;u=193409)
IT MEASURES OF PILOT TIME PERIOD AND COMPARE IF YOU ARE INSIDE TRACK SET,
IF HE GOES TO CODE AND MAKING MEDIDÇÕES PERIOD OF TIME IN HIGH LEVEL
IF YOU HAVE INSIDE TRACK ACRECENTA BIT 1 0 OR VARIABLE IN NO EVENT _DATA ZERA VARIABLES AND RE-START
AFTER RECEIVING ALL IT TAKES THE BITS BITS 4 CODE OF ANTE AND TESTS TO KNOW IF THE CODE WAS RECEIVED
CORRECTLY, IF HE RECEIVED RIGHT PLACE IN A VARIABLE ANTCODE 1.
///////////////////////////////////////////////////////////////////////////////////////////////
CHANGES MADE TO WORK WITH STOP USING TIMER attachInterrupt LEAVING THE RELEASED FOR ARDUINO
OTHER TASKS
///////////////////////////////////////////////////////////////////////////////////////////////
void setup()
{
Serial.begin(9600);
Serial.println("ready");
pinMode(PPM_Pin, INPUT);
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
attachInterrupt(PPM_Pin - 2, read_ppm, CHANGE);
void loop()
{
Serial.println("Conteudo _data2 - " + String(_data2,BIN));
delay(500);
}
_dur = counter;
if(startbit == 1)
{
startbit++;
}else if (startbit==2 && dataok==0 && ctr < 28 && digitalRead(2) == HIGH) //Se possui um bit inicial válido
{
++ctr;
_dur1 = counter;
if(_dur1 > larpulso1 && _dur1 < larpulso2) // Se a largura de pulso é entre 1/4000 e 1/3000 segundos
{
//startbit = 1;
_data = (_data << 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
{
//startbit = 1;
_data = (_data << 1) + 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 && bitRead(_data,1)==0 && bitRead(_data,2)==1 && bitRead(_data,3)==0)
{
antcode=1;
} else {
ctr = 0;
//Serial.println(_data,BIN);
}
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("Antecode OK - " + String(_data,BIN));
_data2 = _data;
ctr=0;
startbit=0;
antcode=0;
//delay(200);
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
FEITA ALTERAÇÃO PARA FUNCIONAR COM INTERRUPÇÃO UTILIZANDO TIMER ATTACHINTERRUPT DEIXANDO LIBERADO O
ARDUINO PARA
AS OUTRAS TAREFAS
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup()
{
Serial.begin(9600);
Serial.println("ready");
pinMode(PPM_Pin, INPUT);
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
attachInterrupt(PPM_Pin - 2, read_ppm, CHANGE);
void loop()
{
Serial.println("Conteudo _data2 - " + String(_data2,BIN));
delay(500);
}
if(startbit == 1)
{
startbit++;
}else if (startbit==2 && dataok==0 && ctr < 28 && digitalRead(2) == HIGH) //Se possui um bit inicial válido
{
++ctr;
_dur1 = counter;
if(_dur1 > larpulso1 && _dur1 < larpulso2) // Se a largura de pulso é entre 1/4000 e 1/3000 segundos
{
//startbit = 1;
_data = (_data << 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
{
//startbit = 1;
_data = (_data << 1) + 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 && bitRead(_data,1)==0 && bitRead(_data,2)==1 && bitRead(_data,3)==0)
{
antcode=1;
} else {
ctr = 0;
//Serial.println(_data,BIN);
}
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("Antecode OK - " + String(_data,BIN));
_data2 = _data;
ctr=0;
startbit=0;
antcode=0;
//delay(200);
}
Nick Gammon
(http://forum.arduino.cc/index.php?
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&action=profile;u=36095) Re: DECODING HT6P20 WITH attachinterrupt (http://forum.arduino.cc
(http://forum.arduino.cc/index.php?
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&topic=175557.msg130291
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&topic=175557.msg1302914#msg1302914)
Global Moderator « Reply #1 on: July 04, 2013, 02:38:03 am »
Offline
Brattain Member
(http://forum.arduino.cc/index.php? Logged
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&action=profile;u=36095)
Nick Gammon
(http://forum.arduino.cc/index.php?
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&action=profile;u=36095) Re: DECODING HT6P20 WITH attachinterrupt (http://forum.arduino.cc
(http://forum.arduino.cc/index.php?
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&topic=175557.msg130291
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&topic=175557.msg1302916#msg1302916)
Global Moderator « Reply #2 on: July 04, 2013, 02:38:33 am »
Offline
Brattain Member
(http://forum.arduino.cc/index.php? Logged
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&action=profile;u=36095)
mohandtome
(http://forum.arduino.cc/index.php?
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&action=profile;u=196726) Re: DECODING HT6P20 WITH attachinterrupt (http://forum.arduino.cc
(http://forum.arduino.cc/index.php?
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&topic=175557.msg133320
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&topic=175557.msg1333209#msg1333209)
Offline « Reply #3 on: July 28, 2013, 08:47:30 pm »
Newbie
Karma: 0
Posts: 1 i was wondering for what the pin 13 is used for, and if i can change it to other pin, and if you can describe your hardware.
(http://forum.arduino.cc/index.php? Logged
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&action=profile;u=196726)
acturcato
(http://forum.arduino.cc/index.php?
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&action=profile;u=228116) Re: DECODING HT6P20 WITH attachinterrupt (http://forum.arduino.cc
(http://forum.arduino.cc/index.php?
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&topic=175557.msg153301
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&topic=175557.msg1533019#msg1533019)
Offline « Reply #4 on: January 04, 2014, 01:59:51 pm »
Newbie
Karma: 0
Posts: 9
Hi Guys!
(http://forum.arduino.cc/index.php?
I developed a sketch based on the nice code above and many others..
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&action=profile;u=228116)
For all "remote controls" that use the encoder HT6P20 I tested, it worked!
Portuguese:
http://acturcato.wordpress.com/2013/12/20/decodificador-para-o-encoder-ht6p20b-em-arduino/
(http://acturcato.wordpress.com/2013/12/20/decodificador-para-o-encoder-ht6p20b-em-arduino/)
Logged
Print (http://forum.arduino.cc/index.php?
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&action=printpage;topic=175557.0)
Pages: [1] Go Up
« previous topic (http://forum.arduino.cc/index.php?PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&topic=175557.0;prev_next=prev#new) next topic » (http://forum.arduino.cc/index.php?
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&topic=175557.0;prev_next=next#new)
(http://forum.arduino.cc/index.php?PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&) | Arduino Forum (http://forum.arduino.cc/index.php?
PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&) :: Using Arduino (http://forum.arduino.cc/index.php?PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4) :: Networking, Protocols, and Devices
(http://forum.arduino.cc/index.php?PHPSESSID=i29n6l2gfijbq40eutpa5ng0c4&board=11.0) :: DECODING HT6P20 WITH attachinterrupt
Jump to:
=> Networking, Protocols, and Devices
go
Ne wsle tte r
Enter your email to sign up
Subscribe
(https://twitter.com/arduino)
(http://www.facebook.com/official.arduino)
(https://plus.google.com/+Arduino)
(http://www.flickr.com/photos/arduino_cc)
(http://youtube.com/arduinoteam)