Escolar Documentos
Profissional Documentos
Cultura Documentos
Buscador
Geek Chickens Buscar
Nuevo
MOKKA X
steserelprimerodeunoscuantostutorialesdondeexplicaremossobrelamanipulacinyoperacionesconbits.
Operacionesconbits:
operador&
PermitehacerunamscaratipoANDcondosvalores.Ququieredecireso?veamosunejemplo:
intnumero_1=6//enbinarioes100
intnumero_2=3//enbinarioes10 > CONFIGRALO
intresultado=numero_1&numero_2
0110//numero_1
0011//numero_2
*Validez de la oferta hasta el 30/06/17
LEGAL
0010
Hemoshechounamultiplicacinconlosdosnmerosyelresultadohasidoelnumero10(numero2en
decimal).Estetipodeoperadornospuedeirbiencuandoqueramoseliminarlapartealtaobajadeunaposicin Entradas populares
delamemoria.
Controldeaccesoconlectorde
Lamemoriatienedospartes,laaltaylabaja.Normalmente,cadaunaestcompuestapor4bits:
tarjetasRFIDusandoArduino
Enestetutorialexplicarcmomontar
unlectordetarjetasytags(llaves)de
tipoRFID(porsialguienseanimayse
quiereinstalaru...
LeercdigotagconmduloRFID
"RFIDRC522"
Viendoquemuchagentelopeda,he
creadouncdigoparaleerlostags,el
cdigoacontinuacin://GeekChickens
//http://geekchickens.b...
http://geekchickens.blogspot.com.es/2014/01/tutorialdearduinodesde0tutorial12.html 1/4
9/4/2017 TutorialdeArduinodesde0Tutorial12Operacionesconbits(1)|GeekChickens
operador|
TutorialdeArduinodesde0
Tutorial17Crearnuestraspropias
Esteoperador,loquehaceessumarperodeformabinaria.Esoquieredecirque: funciones+estructurasdecontrol"
return"y"goto"
0+0=0 Enestaentradaaprenderemosalgo
0+1=1 muytilyesacrearnuestraspropias
1+0=1 funcionesparaconseguiruncdigo
1+1=1 muchomsordenadoyclar...
veamosunejemplo: TutorialdeArduinodesde0
Tutorial20Grabarenlamemoria
interna(EEPROM)denuestro
intnumero_1=6//enbinarioes100 Arduino+cdigopuertadeacceso
intnumero_2=3//enbinarioes10 Enestaentrada,aprenderemosa
guardardatospermanentesdentrode
intresultado=numero_1&numero_2 nuestroArduino.Nospuedesertilsi
queremosquepermanezcan...
0110//numero_1
0011//numero_2 TutorialdeArduinodesde0
Tutorial15TiemposenArduino(
0111 delay(),delayMicroseconds(),millis()
ymicros())
Enestaentrada,hablaremossobrelos
Enestecaso,elresultadohasigo111(elnumeo7endecimal).Esteoperadorpuedeirmuybiencuando retardosydelaysenArduino.Haydos
queremosunirlapartealtadeunaposicindelamemoriaconlapartebajadeotra,sinafectaralaotraposicin, manerasdeconseguiruntiempoen
porejemplo: Arduino.Unoseracu...
posicindememoria1=00001010 Crearcaracterespersonalizados
posicindememoria2=11010000 (yanimados)paratusproyectoscon
LCDde16x2ocualquierotro
posicindememoria1|posicindememoria2==>11011010 Enstetutorialosensearacrear
vuestrospropioscaracteres
personalizadosparavuestrasLCDde
16x2(odems)conunmatrizde5x8
operador^ ...
EsunaXOR,loquehacees,cuandolosdosbitsdeentradaseaniguales,devuelve0,ycuandolosdosbitsde LectordecdigoIR(protocolo
entradaseandistintos,devuelte1. NEC)conArduino
HoyusaremoslalibreraNECIRrcv(
0^0=0 incluidajuntoaladescargadel
0^1=1 cdigo),quenospermitirsacarle
1^0=1 partidoalosinfrarrojos.Enesta...
1^1=0
TutorialdeArduinodesde0
Tutorial09Estructurasdecontrol
operador~
Switchcase+break+continue
Switchcase:Enestaentrada,
EsteoperadoresunaNOTyloquepermiteesnegarlosbitsdeunavariable.Porejemplo: explicarlaestructuradecontrol
switchcase.Esmuytilcuando
intnumero=13//elnumero1101enbinario tenemosunagrancantidadde...
intnegacion=~numero
TutorialdeArduinodesde0
siimprimimosnegacionnosaparecerelnumero2,porqu?porquelanegacinde1101,es0010(el Tutorial21IRQexternascon
numero2endecimal. Arduino(interrupcionesexternas)
Hoyaprenderemosausarlas
interrupcionesexternasdeArduino,
peroantesexplicaremosunpocolo
operador<<
queesunainterrupcin.Unain...
Permitedesplazarbitshacialaizquierda.Losbitsquesedesbordandelamemoriasepierdenyporlapartebaja Aplicacindelasinterrupciones
delamemoria,serellenacon0.Sufuncionamientoesfcil: externasconArduino.Contadorpara
bobinador(mquinabobinadora)
numero<<numerodedesplazamientos Enestaentrada,explicaruncdigo
parabuscarleunautilidadprcticaa
Ejemplo: lasinterrupciones.Dichocdigosirve
paracontrolarunamquina...
intnumero=3
intnumeroDesplazado=3<<2 Etiquetas
LavariablenumeroDesplazado,dar12,porqu?porqueelnmero3(11)lodesplazamos2veceshacia
AVR(1)
laizquierda,yenlaposicindondeseencontrabaantes,serellenade0(1100,elnumero12endecimal)
BananaPro(1)
operador>> IR(4)
IRQ(interrupciones)(1)
Eslomismoqueeloperador<<peroenelsentidoinverso.Sidesplazamosunnmeromuchasposicioneshacia
LCD(3)
unsentido,lamemorianosquedarvaca.Porejemplo:
miCPU(4)
intnumero=3 Otros(1)
reciclajeelectrnico(2)
intnumeroDesplazado=3>>4
RFID(2)
LavariablenumeroDesplazadovaldr0,porqueelnumero3(11),lohemosmovido4posicionesaladerecha, TutorialArduino(23)
porlotantoseraasi:
http://geekchickens.blogspot.com.es/2014/01/tutorialdearduinodesde0tutorial12.html 2/4
9/4/2017 TutorialdeArduinodesde0Tutorial12Operacionesconbits(1)|GeekChickens
Configuracindepinesdeformabinaria(entradassalidas):
Eneltutorialnumero11,yavimosunpocoporencimacmohacenuestroArduinoparaconfigurarsuspinesde
formaseparada(pinMode(pin,INPUT/OUTPUT)),ahoraveremosunaformaparapoderdeclarartodoslospines
deunpuertoalmismotiempo.
Haydosmaneras:
1)Configurarpinescomoentradasosalidas,eliminandoelestadoanteriordelasalidaoentrada:
DDRX=B11111111dondeXeselpuertoqueusaremos.//hemosconfiguradotodoslosponesdenuestro
puertocomosalidas.
2)Yconestaforma,evitamostocarlospinesquenoqueremosconfigurar:
DDRX=DDRX|B00001111//hemosdeclaradolos4primerospinescomoentradasyelrestonolostocamos,
porquehacemosunaOR.
Imaginadqueelregistrotenacargadoesto:
DDRX=11000000
Ynosotroscargamosesto:
DDRX=00000000
Todoquedarcomoentradas,perosiusamoseloperadorOR(|),conseguiremosnoperderlapartequenos
interesa:
Registroinicial:DDRX=11000000
DDRX=DDRX|00001110
Registrofinal:DDRX=11001110
Ahorayasabemoscmoconfigurarentradasysalidas,vayamosahoraacargarlesunvaloraltoobajo:
Configuracindepinesdeformabinaria(encender/apagarpinensalidasyactivarodesactivarresistenciapull
upenentradas):
Cuandosonsalidas:sitenemospuestoDDRX=B11111111(todassalidas)
PORTX=B11111111conesto,pondramostodaslassalidasaHIGH
Veamosunejemplo:
CdigoparaArduinomega2560:
1 voidsetup() ?
2 {
3 DDRA=B11111111;//enestecasonosdaigualmachacarloanterior,peropodramoshaberpuesto:
4 //DDRA=DDRA|B11111111otambinDDRA|=B11111111,aunqueesoseusa
5 //normalmentecuandohayentradasysalidasjuntas
6 }
7
8
9 voidloop()
10 {
11 PORTA=0xFF;
12 delay(500);
13 PORTA=0x00;
http://geekchickens.blogspot.com.es/2014/01/tutorialdearduinodesde0tutorial12.html 3/4
9/4/2017 TutorialdeArduinodesde0Tutorial12Operacionesconbits(1)|GeekChickens
13 PORTA=0x00;
14 delay(500);
15 }
Comopodemosverenelejemploanterior,lassalidaslashedeclaradoenhexadecimal(lohehechoporquees
mscmodo,peropodramoshaberpuestoB11111111.ElDDRA,enArduinomeg2560equivalenalospines22
al29.
ParaotrosArduinos,tendramosquemirarsuspuertosyescogerelpuertoquenosinteresems.
Dejaraquestaentradayenlaprxima,explicarcmomanipularlasentradasysepondrnalgunosejemplos.
Fuentes:
http://arduino.cc/es/Reference/PortManipulation
0 comentarios:
Introducetucomentario...
Vistaprevia
Publicar Avisarme
http://geekchickens.blogspot.com.es/2014/01/tutorialdearduinodesde0tutorial12.html 4/4