Está en la página 1de 6

(/)

Buscarartculos...

(Cdigo) Cmo leer pulsos PPM con Arduino (/noticias/arduino/codigo-como-leer-pulsos-ppm-con-arduino/)


Publicado por Oscar Gonzalez en Arduino (/noticias/arduino) el 18/06/2010 Comentarios:

como (/tag/como) pulsos (/tag/pulsos) ppm (/tag/ppm) futaba (/tag/futaba) arduino (/tag/arduino)

(imagen: l-3com (http://www.l-3com.com/tw/tutorial/modulation.html))

Llega el n de semana y nuestras mentes inquietas piden trabajo. Por ese motivo, os dejo por aqui un interesante cdigo para Arduino que permite leer pulsos PPM (y no PWM, que no es lo mismo)
o dicho sin siglas, modulacin por posicin de pulso. sta tcnica se utiliza muchsimo en radio control, ms concretamente en las emisoras digitales las cuales utilizan dicho protocolo para
comunicarse con el receptor e incluso para telemetra. sto nos permite leer los datos de un receptor de una emisora Futaba o Graupner por ejemplo y as poder controlar nuestros proyectos con
una emisora digital. sto est muy bien por ejemplo para robtica, ya que podemos ahorrarnos hacer, a parte del robot en s, el mando corresponiente para controlarlo.

Pantallas LCD grcas y de texto

(http://tienda.bricogeek.com/pantallas-
(http://tienda.bricogeek.com/pantallas-
(http://tienda.bricogeek.com/pantallas-
(http://tienda.bricogeek.com/pantallas-
(http://tienda.bricogeek.com/pantallas-
lcd-oled/86-pantalla- oled/787-pantalla-oled- lcd/334-pantalla-serial- lcd/580-pantalla-lcd-
lcd-16x2-caracteres- 15-pulgadas-uoled- lcd-128x64.html? 128x64-ks0108b.html?
medium=recomslider&utm_campaign=product&utm_term=Pantalla+TFT+3.5)
fstn-amarillo-sobre- 128-g2.html? utm_source=blog&utm_medium=recomslider&utm_campaign=product&utm_term=Pantalla+Serial+LCD+128x64?
utm_source=blog&utm_medium=recomslider&utm_campaign=product&utm_term=Pantalla+LCD+128x64+

Lector PPM bsico para Arduino


#definechannumber6//Cuantoscanalestieneturadio???????/Howmanychannelshaveyourradio???
intchannel[channumber];//Valoresdecanalesleidos/readedChannelvalues
(/)
intPPMin=4;

voidsetup()
{
Serial.begin(9600);//Iniciamoscomserial/
pinMode(PPMin,INPUT);//Patita4comoentrada/Pin4asinput
}
}

voidloop()
{
//Esperahastaquelasenaldesincronizacionllegue,debeser>4milisegundos
//waitsultilsynchronizearrives>4miliseconds
if(pulseIn(PPMin,HIGH)>4000);//Sielpulsodelpin4es>que4msegundoscontinua/Ifpulse>4miliseconds,continues
{
for(inti=1;i<=channumber;i++)//leelospulsosdelosdemascanales/Readthepulsesoftheremainigchannels
{
channel[i1]=pulseIn(PPMin,HIGH);
}
for(inti=1;i<=channumber;i++)//Imprimelosvaloresdetodosloscanales/Printsallthevaluesreaded
{
Serial.print("CH");//Canal/Channel
Serial.print(i);//Numerodelcanal/Channelnumber
Serial.print(":");//queteimporta
Serial.println(channel[i1]);//Imprimeelvalor/Printthevalue
}
delay(200);//Ledatiempoparaimprimirlosvaloresenelpuerto/Givetimetoprintvalues.
}
}

Lector PPM para Arduino mejorado con ltro antisalto (anti-glitch)

#definechannumber6//Cuantoscanalestieneturadio???????/Howmanychannelshaveyourradio???
#definefilter10//Filtroantisalto/GlitchFilter
(/)
intchannel[channumber];//Valoresdecanalesleidos/readedChannelvalues
intlastReadChannel[channumber];//Ultimalecturaobtenida/Lastvaluesreaded
intconta=0;//Contador/couter

voidsetup()
{
Serial.begin(9600);//Iniciamoscomserial/SerialBegin
pinMode(4,INPUT);//Patita4comoentrada/Pin4asinput
pinMode(13,OUTPUT);//Ledpin13
}

voidloop()
{


if(pulseIn(4,HIGH)>3000)//Sielpulsodelpin4es>3000usegundoscontinua/Ifpulse>3000useconds,continues
{
for(inti=0;i<=channumber1;i++)//leelospulsosdeloscanales/Readthepulsesofthechannels
{
channel[i]=pulseIn(4,HIGH);
}
for(inti=0;i<=channumber1;i++)//Promedialospulsos/Averagethepulses
{
if((channel[i]>2000)||(channel[i]<100))//Sisepasadelrangoenviaultimopulso/Ifchannel>maxrange,chagethevaluetothelastpulse
{
channel[i]=lastReadChannel[i];
}
else
{
channel[i]=(lastReadChannel[i]+channel[i])/2;//Promedioelpulsopasadoconelnuevopulso/Averagethelastpulseeiththecurrentpulse
conta++;//Incrementaelcontador/incrementcounter
}
}

}
if(conta>filter)//Sielcontadoresmayoralfiltroimprimevalores/Ifcounteris>thanfilter,thenprintsvalues
{
for(inti=0;i<=channumber1;i++)//Cicloparaimprimirvalores/Cycletoprintvalues
{
Serial.print("CH");//Canal/Channel
Serial.print(i+1);//Numerodelcanal/Channelnumber
Serial.print(":");//queteimporta
Serial.println(channel[i]);
lastReadChannel[i]=channel[i];
}
if(channel[4]>1000)//sielcanal5tieneunrangomayora500enciendeelLED/Ifchannel5is>than500turnontheled
{
digitalWrite(13,HIGH);
}

else
{
(/)
digitalWrite(13,LOW);//Sinoloapaga/Ifnotturnitoff
}
delay(400);//Delay
conta=0;//Reiniciaelcontador/Restartcouter.
}
}

Creo que stos pequeos cdigos hablan por s solos y son relativamente sencillos de entender. Un estupendo trabajo de Jordi Muoz que lo ha compartido aqui (http://www.arduino.cc/cgi-
bin/yabb2/YaBB.pl?num=1199165055). A partir de aqui, podemos utilizar una emisora digital en nuestros proyectos y desd luego habre un montn de posibilidades.

Personalmente me gusta mucho mezclar el radio-control con todo el tema de la electrnica casera, aunque ambas cosas van bastante relacionadas. Tengo entre manos un receptor Jeti Spektrum y
si tengo algo de tiempo probar ste cdigo.

Si te ha gustado, comprtelo con tus amigos!


11 0 0
Facebook Twitter GooglePlus

(http://www.facebook.com/plugins/like.php?
(https://twitter.com/share? (https://plus.google.com/share?
Artculos relacionados
Si te ha gustado, quizs tambin te interese... url=http://blog.bricogeek.com/noticias/arduino/codigo
href=http://blog.bricogeek.com/noticias/arduino/codigo
url=http://blog.bricogeek.com/noticias/arduino/codigo

comoleerpulsosppm comoleerpulsosppm
Domtica casera comoleerpulsosppm
con Arduino controlado por GSM (/noticias/arduino/domotica-casera-con-arduino-controlado-por-gsm/)
comoleerpulsosppm comoleerpulsosppm
Domtica casera comoleerpulsosppm
con Arduino controlado por GSM (/noticias/arduino/domotica-casera-con-arduino-controlado-por-gsm/)

con conarduino/&text= conarduino/)


Lanzador electrnico para fuegos articiales con Arduino (/noticias/diy/lanzador-electronico-para-fuegos-articiales-con-arduino/)
arduino/&width&layout=standard&action=like&show_faces=true&share=true&height=250&appId=127166586042)
(Cdigo)Cmoleer
Rover AA1: Robot con Acer Aspire One y Arduino (/noticias/arduino/rover-aa1-robot-con-acer-aspire-one-y-arduino/)
pulsosPPMcon

Cmo hacer un generador elico casero (/noticias/diy/como-hacer-un-generador-eolico-casero/)


Arduino&via=bricotienda)

ArduSAT: Plataforma satelite para arduino (/noticias/arduino/ardusat-plataforma-satelite-para-arduino/)

Coche RC controlado con Arduino y Android (/noticias/arduino/coche-rc-controlado-con-arduino-y-android/)

0comentarios Ordenarpor: Losmsantiguos

Aadeuncomentario...

FacebookCommentsPlugin

Ver comentarios antiguos...

(/)


Buscador

Buscarartculos...

Conecta con BricoGeek.com


Canales sociales
(/noticias/feed/)
Nos gusta estar estar en contacto con nuestros lectores y saber ms acerca de sus proyectos e inventos. Sguenos!

(http://facebook.com/bricotienda) (https://twitter.com/bricotienda)
(https://www.youtube.com/c/bricogeektienda)
(https://instagram.com/bricogeek/)
(https://plus.google.com/b/103371664075724444892/+BricogeekTienda/posts)
(https://github.com/bricogeek)
Lo ms popular

Cmo fabricar tu propio Arduino casero en una PCB


01/02/2017 (/noticias/arduino/como-fabricar-tu-propio-arduino-casero-en-una-pcb/)

Cmo hacer un medidor de consumo elctrico con Arduino


25/11/2016 (/noticias/arduino/como-hacer-un-medidor-de-consumo-electrico-con-arduino/)

Torre armada automtica con visin artical para Airsoft con Raspberry Pi
Torre armada automtica con visin artical para Airsoft con Raspberry Pi
19/12/2016 (/noticias/raspberry-pi/torre-armada-automatica-con-vision-artical-para-airsoft-con-raspberry-pi/)

Visitando el workshop del Maker millonario Michael Dubno

ltimo vdeo en YouTube

Suscrbete a nuestro canal y no te pierdas ningn vdeo!

BricoGeek

YouTube 32k

Tienda BricoGeek.com
Electrnica para tus proyectos! (/)
Ests preparando un proyecto o quieres iniciarte en la electrnica? Encuentra todo lo que necesitas en nuestra tienda online de electrnica. (http://tienda.bricogeek.com)

Transceptor inalmbrico NRF24L01 (2.4GHz)


3,90 (http://tienda.bricogeek.com/modulos-de-radiofrecuencia/906-transceptor-inalmbrico-nrf24l01-24ghz.html?
utm_source=blog&utm_medium=banner_right_yellow&utm_campaign=product&utm_term=Transceptor+inalmbrico+NRF24L01+(2.4GHz))

Cable SMA a U.F.L.


4,70 (http://tienda.bricogeek.com/cables/579-cable-sma-a-u.html?utm_source=blog&utm_medium=banner_right_yellow&utm_campaign=product&utm_term=Cable+SMA+a+U.F.L.)
Motor vibrador miniatura
4,95 (http://tienda.bricogeek.com/motores/154-motor-vibrador-miniatura.html?
utm_source=blog&utm_medium=banner_right_yellow&utm_campaign=product&utm_term=Motor+vibrador+miniatura)

BricoGeek
Megustaestapgina (/)
9380Megusta

Selprimerodetusamigosenindicarquelegusta
esto.

BricoGeek.com 2005-2017
Frikeando por la red desde 2005 - Donde hay un LED hay alegra
BricoGeek (http://sitadex.oepm.es/SitadexWS/index.jsp?numExp=M3510375) es una marca registrada y propriedad de E-Pulse Servicios de Internet S.L.

(http://facebook.com/bricotienda) (https://twitter.com/bricotienda) (https://www.youtube.com/c/bricogeektienda) (https://instagram.com/bricogeek)


(https://plus.google.com/b/103371664075724444892/+BricogeekTienda/posts) (https://github.com/bricogeek)

También podría gustarte