SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
Arduino: Simon dice, paso a paso
Alberto Labarga – Experimental Serendipity S.L.
Laboratorio de Fabricación Digital, Mutilva, 14 de Marzo de 2014
OPEN ACCESS
http://www.apptivismo.org/laboratorio-fabricacion-digital/
Wifi
WLAN_5B44
X0C8OH1SQO8RH5L2OLGC
Paso a paso
● Controlar los cambios de estado del
pulsador
● Reproducir una secuencia de luces
● Simón dice
● Cargar liberías. Reproducir sonidos
● Simón dice con sonidos
Pulsador con cambio de estado
// Variables para guardar los estados del pulsador
int estado = 1; // estado del pulsador (como usamos PULL UP, comienza a HIGH)
int estado_anterior = 1; // estado anterior
bool encendido = false; // el led comienza apagado
void setup() {
// inicializamos el pin del pulsador como INPUT (con resistencia PULL UP interna)
pinMode(buttonPin, INPUT_PULLUP);
// initializamos el pin del led como OUTPUT
pinMode(ledPin, OUTPUT);
}
http://www.apptivismo.org/laboratorio-fabricacion-digital/descargas/codigo/CambioEstado/
Pulsador con cambio de estado
void loop() {
// leemos el estado del pulsador
estado = digitalRead(buttonPin);
// comparamos el estado actual con el anterior
if (estado != estado_anterior) {
// cuando soltamos el pulsador
if (buttonState == HIGH) {
if (encendido) { // si estaba encendido lo apago
digitalWrite(ledPin, LOW);
ncendido = false;
} else { // si estaba apagado lo enciendo
digitalWrite(ledPin, HIGH);
encendido = true;
}
}
}
estado_anterior = estado;
}
Reproducir secuencia
int simon[] = {0, 2, 1, 1, 3, 2, 0, 1, 2, 3}; // Secuencia de 10 elementos
int leds[] = {10, 11, 12, 13}; // LED pins
void setup() {
// initializar los pines como salida
for (int i=0; i<4; i++){
pinMode(leds[i], OUTPUT);
}
}
http://www.apptivismo.org/laboratorio-fabricacion-digital/descargas/codigo/Secuencia/
Reproducir secuencia
void playSequence(int seq[],int n){
for (int i=0; i<n; i++){
int s = seq[i]; // qué led debo encender en el turno i?
int led = leds[s]; // qué pin corresponde a ese led?
digitalWrite(led, HIGH); // enciendo el led
delay(1000); // espero un segundo
digitalWrite(led, LOW); // apago el led
delay(1000); // espero un segundo
}
}
Reproducir secuencia
void loop() {
playSequence(simon, 10);
}
Simon dice
int simon[20]; // tabla donde guardo la secuencia generada por el juego
int jugador[20]; // tabla donde guardo la secuencia introducida poe el jugador
int botones[] = {2, 3, 4, 5}; //The four button input pins
int leds[] = {10, 11, 12, 13}; // LED pins
int turno = 0; // el turno
boolean pulsado = false; // hemos pulsado el boton
boolean game_over = false; // hemos perdido
// variables auxiliares
int ledPin;
int botonPin;
int estado;
Simon dice
void setup() {
// initializar los pines como salida
for (int i=0; i<4; i++){
pinMode(leds[i], OUTPUT);
}
// initializar los pines botonescomo entrada
for (int i=0; i<4; i++){
pinMode(botones[i], INPUT_PULLUP);
}
// inicializar la semilla de nuemeros aleatorios
randomSeed(analogRead(0));
// abrir la conexión serie con el PC
Serial.begin(9600);
}
http://www.apptivismo.org/laboratorio-fabricacion-digital/descargas/codigo/SimonSays/
Simon dice
// reproducir una secuencia seq de longitud n
void playSequence(int seq[],int n){
int s;
// para cada elemento de la secuencia, enciendo y apago el led
for (int i=0; i<n; i++){
s = seq[i];
ledPin = leds[s];
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(500);
// mostrar info en pantalla
Serial.print(s);
Serial.print(" ");
}
Serial.println();
Serial.println("Tu turno");
}
http://arduino.cc/en/Tutorial/Tone
Importar librerías
Ponemos el fichero de cabecera
(*.h) en un directorio con el
mismo nombre
http://www.apptivismo.org/laboratorio-fabricacion-digital/descargas/codigo/SimonSaysTone/

Mais conteúdo relacionado

Mais procurados

Todos+los+comandos+que+hay+que+saber+para+configurar+un+router
Todos+los+comandos+que+hay+que+saber+para+configurar+un+routerTodos+los+comandos+que+hay+que+saber+para+configurar+un+router
Todos+los+comandos+que+hay+que+saber+para+configurar+un+routerjlzo
 
Ccna 1 capitulo 2 examen en linea
Ccna 1 capitulo 2 examen en lineaCcna 1 capitulo 2 examen en linea
Ccna 1 capitulo 2 examen en lineaomar_891
 
PERTURBACIONES DE LA TRANSMISIÓN
PERTURBACIONES DE LA TRANSMISIÓNPERTURBACIONES DE LA TRANSMISIÓN
PERTURBACIONES DE LA TRANSMISIÓNUNAED
 
Latches y flip flops
Latches y flip flopsLatches y flip flops
Latches y flip flopsJimmy Osores
 
Enrutamiento estatico-con-gns3
Enrutamiento estatico-con-gns3Enrutamiento estatico-con-gns3
Enrutamiento estatico-con-gns3Javierandres64
 
Generar retardos-para-pic-en-mplab
Generar retardos-para-pic-en-mplabGenerar retardos-para-pic-en-mplab
Generar retardos-para-pic-en-mplabYeni Ochoa
 
Manejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreManejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreLuis Zurita
 
9 modulacion, ask, fsk, psk y qam
9  modulacion, ask, fsk, psk y qam9  modulacion, ask, fsk, psk y qam
9 modulacion, ask, fsk, psk y qamUTU
 
Redes II Practica 5 OSPF
Redes II Practica 5 OSPFRedes II Practica 5 OSPF
Redes II Practica 5 OSPFLuis Reyes
 
Teknologi spread spectrum
Teknologi spread spectrumTeknologi spread spectrum
Teknologi spread spectrumraenigalih
 
Instrucciones de control de salto
Instrucciones de control de saltoInstrucciones de control de salto
Instrucciones de control de saltoAbrirllave
 
6.6 Calculos de radioenlaces
6.6 Calculos de radioenlaces6.6 Calculos de radioenlaces
6.6 Calculos de radioenlacesEdison Coimbra G.
 

Mais procurados (20)

Todos+los+comandos+que+hay+que+saber+para+configurar+un+router
Todos+los+comandos+que+hay+que+saber+para+configurar+un+routerTodos+los+comandos+que+hay+que+saber+para+configurar+un+router
Todos+los+comandos+que+hay+que+saber+para+configurar+un+router
 
codificacion de linea
codificacion de lineacodificacion de linea
codificacion de linea
 
Ccna 1 capitulo 2 examen en linea
Ccna 1 capitulo 2 examen en lineaCcna 1 capitulo 2 examen en linea
Ccna 1 capitulo 2 examen en linea
 
PERTURBACIONES DE LA TRANSMISIÓN
PERTURBACIONES DE LA TRANSMISIÓNPERTURBACIONES DE LA TRANSMISIÓN
PERTURBACIONES DE LA TRANSMISIÓN
 
Telefonía Móvil Celular (0 a 4G LTE-Advanced)
Telefonía Móvil Celular (0 a 4G LTE-Advanced)Telefonía Móvil Celular (0 a 4G LTE-Advanced)
Telefonía Móvil Celular (0 a 4G LTE-Advanced)
 
Latches y flip flops
Latches y flip flopsLatches y flip flops
Latches y flip flops
 
Enrutamiento estatico-con-gns3
Enrutamiento estatico-con-gns3Enrutamiento estatico-con-gns3
Enrutamiento estatico-con-gns3
 
Generar retardos-para-pic-en-mplab
Generar retardos-para-pic-en-mplabGenerar retardos-para-pic-en-mplab
Generar retardos-para-pic-en-mplab
 
Manejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreManejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladore
 
9 modulacion, ask, fsk, psk y qam
9  modulacion, ask, fsk, psk y qam9  modulacion, ask, fsk, psk y qam
9 modulacion, ask, fsk, psk y qam
 
PCM (Pulse Code Modulation)
PCM (Pulse Code Modulation)PCM (Pulse Code Modulation)
PCM (Pulse Code Modulation)
 
Hilos con Posix
Hilos con PosixHilos con Posix
Hilos con Posix
 
Protocolo de capa 4
Protocolo de capa 4Protocolo de capa 4
Protocolo de capa 4
 
Redes II Practica 5 OSPF
Redes II Practica 5 OSPFRedes II Practica 5 OSPF
Redes II Practica 5 OSPF
 
Control de errores
Control de erroresControl de errores
Control de errores
 
Enrutamiento estatico
Enrutamiento estaticoEnrutamiento estatico
Enrutamiento estatico
 
Teknologi spread spectrum
Teknologi spread spectrumTeknologi spread spectrum
Teknologi spread spectrum
 
Máquinas de Estado
Máquinas de EstadoMáquinas de Estado
Máquinas de Estado
 
Instrucciones de control de salto
Instrucciones de control de saltoInstrucciones de control de salto
Instrucciones de control de salto
 
6.6 Calculos de radioenlaces
6.6 Calculos de radioenlaces6.6 Calculos de radioenlaces
6.6 Calculos de radioenlaces
 

Semelhante a Arduino: Programando el Simon dice

Semelhante a Arduino: Programando el Simon dice (20)

Arduino Basico.pptx
Arduino Basico.pptxArduino Basico.pptx
Arduino Basico.pptx
 
Termómetro con arduino uno
Termómetro con arduino unoTermómetro con arduino uno
Termómetro con arduino uno
 
Practicas con arduino nivel i
Practicas con arduino nivel iPracticas con arduino nivel i
Practicas con arduino nivel i
 
Practicas IDE
Practicas IDEPracticas IDE
Practicas IDE
 
Practicas
PracticasPracticas
Practicas
 
Practicas con arduino_nivel_1
Practicas con arduino_nivel_1Practicas con arduino_nivel_1
Practicas con arduino_nivel_1
 
Arduino 1 jose m. ruiz
Arduino 1   jose m. ruizArduino 1   jose m. ruiz
Arduino 1 jose m. ruiz
 
Repaso
RepasoRepaso
Repaso
 
Arduino practicas
Arduino practicasArduino practicas
Arduino practicas
 
Programacionmandobrazorobot
ProgramacionmandobrazorobotProgramacionmandobrazorobot
Programacionmandobrazorobot
 
Arduino pulsador
Arduino pulsador Arduino pulsador
Arduino pulsador
 
Arduino: Primeras practicas con arduino
Arduino: Primeras practicas con arduinoArduino: Primeras practicas con arduino
Arduino: Primeras practicas con arduino
 
Práctica05.Interrupciones en Arduino
Práctica05.Interrupciones en ArduinoPráctica05.Interrupciones en Arduino
Práctica05.Interrupciones en Arduino
 
Arduino Uno ejercicios prácticos
Arduino Uno ejercicios prácticos Arduino Uno ejercicios prácticos
Arduino Uno ejercicios prácticos
 
Equipo7 Arduino
Equipo7 ArduinoEquipo7 Arduino
Equipo7 Arduino
 
Arduino - Ejercicios Básicos
Arduino - Ejercicios BásicosArduino - Ejercicios Básicos
Arduino - Ejercicios Básicos
 
Examen molina-giulietti2
Examen molina-giulietti2Examen molina-giulietti2
Examen molina-giulietti2
 
Arduino
ArduinoArduino
Arduino
 
Microcontroladores clase 4
Microcontroladores clase 4Microcontroladores clase 4
Microcontroladores clase 4
 
Introducción a la plataforma Arduino - Laboratorio de Fabricación Digital UPN...
Introducción a la plataforma Arduino - Laboratorio de Fabricación Digital UPN...Introducción a la plataforma Arduino - Laboratorio de Fabricación Digital UPN...
Introducción a la plataforma Arduino - Laboratorio de Fabricación Digital UPN...
 

Mais de Alberto Labarga

El Salto Communities - EditorsLab 2017
El Salto Communities - EditorsLab 2017El Salto Communities - EditorsLab 2017
El Salto Communities - EditorsLab 2017Alberto Labarga
 
Shokesu - Premio Nobel de Literatura a Bob Dylan
Shokesu - Premio Nobel de Literatura a Bob DylanShokesu - Premio Nobel de Literatura a Bob Dylan
Shokesu - Premio Nobel de Literatura a Bob DylanAlberto Labarga
 
Genome visualization challenges
Genome visualization challengesGenome visualization challenges
Genome visualization challengesAlberto Labarga
 
SocialLearning: descubriendo contenidos educativos de manera colaborativa
SocialLearning: descubriendo contenidos educativos de manera colaborativaSocialLearning: descubriendo contenidos educativos de manera colaborativa
SocialLearning: descubriendo contenidos educativos de manera colaborativaAlberto Labarga
 
Hacksanfermin 2015 :: Dropcoin Street
Hacksanfermin 2015 :: Dropcoin StreetHacksanfermin 2015 :: Dropcoin Street
Hacksanfermin 2015 :: Dropcoin StreetAlberto Labarga
 
hacksanfermin 2015 :: Parking inteligente
hacksanfermin 2015 :: Parking inteligentehacksanfermin 2015 :: Parking inteligente
hacksanfermin 2015 :: Parking inteligenteAlberto Labarga
 
Vidas Contadas :: Visualizar 2015
Vidas Contadas :: Visualizar 2015Vidas Contadas :: Visualizar 2015
Vidas Contadas :: Visualizar 2015Alberto Labarga
 
Periodismo de datos y visualización de datos abiertos #siglibre9
Periodismo de datos y visualización de datos abiertos #siglibre9Periodismo de datos y visualización de datos abiertos #siglibre9
Periodismo de datos y visualización de datos abiertos #siglibre9Alberto Labarga
 
Arduino: Control de motores
Arduino: Control de motoresArduino: Control de motores
Arduino: Control de motoresAlberto Labarga
 
Entrada/salida analógica con Arduino
Entrada/salida analógica con ArduinoEntrada/salida analógica con Arduino
Entrada/salida analógica con ArduinoAlberto Labarga
 
Entrada/Salida digital con Arduino
Entrada/Salida digital con ArduinoEntrada/Salida digital con Arduino
Entrada/Salida digital con ArduinoAlberto Labarga
 
Presentación Laboratorio de Fabricación Digital UPNA 2014
Presentación Laboratorio de Fabricación Digital UPNA 2014Presentación Laboratorio de Fabricación Digital UPNA 2014
Presentación Laboratorio de Fabricación Digital UPNA 2014Alberto Labarga
 
Conceptos de electrónica - Laboratorio de Fabricación Digital UPNA 2014
Conceptos de electrónica - Laboratorio de Fabricación Digital UPNA 2014Conceptos de electrónica - Laboratorio de Fabricación Digital UPNA 2014
Conceptos de electrónica - Laboratorio de Fabricación Digital UPNA 2014Alberto Labarga
 
Introducción a la impresión 3D
Introducción a la impresión 3DIntroducción a la impresión 3D
Introducción a la impresión 3DAlberto Labarga
 
La vida y trabajo de Shinichi Suzuki
La vida y trabajo de Shinichi SuzukiLa vida y trabajo de Shinichi Suzuki
La vida y trabajo de Shinichi SuzukiAlberto Labarga
 
Arduino: entrada/salida analógica
Arduino: entrada/salida analógicaArduino: entrada/salida analógica
Arduino: entrada/salida analógicaAlberto Labarga
 

Mais de Alberto Labarga (20)

El Salto Communities - EditorsLab 2017
El Salto Communities - EditorsLab 2017El Salto Communities - EditorsLab 2017
El Salto Communities - EditorsLab 2017
 
Shokesu - Premio Nobel de Literatura a Bob Dylan
Shokesu - Premio Nobel de Literatura a Bob DylanShokesu - Premio Nobel de Literatura a Bob Dylan
Shokesu - Premio Nobel de Literatura a Bob Dylan
 
Genome visualization challenges
Genome visualization challengesGenome visualization challenges
Genome visualization challenges
 
SocialLearning: descubriendo contenidos educativos de manera colaborativa
SocialLearning: descubriendo contenidos educativos de manera colaborativaSocialLearning: descubriendo contenidos educativos de manera colaborativa
SocialLearning: descubriendo contenidos educativos de manera colaborativa
 
Hacksanfermin 2015 :: Dropcoin Street
Hacksanfermin 2015 :: Dropcoin StreetHacksanfermin 2015 :: Dropcoin Street
Hacksanfermin 2015 :: Dropcoin Street
 
hacksanfermin 2015 :: Parking inteligente
hacksanfermin 2015 :: Parking inteligentehacksanfermin 2015 :: Parking inteligente
hacksanfermin 2015 :: Parking inteligente
 
jpd5 big data
jpd5 big datajpd5 big data
jpd5 big data
 
Vidas Contadas :: Visualizar 2015
Vidas Contadas :: Visualizar 2015Vidas Contadas :: Visualizar 2015
Vidas Contadas :: Visualizar 2015
 
Periodismo de datos y visualización de datos abiertos #siglibre9
Periodismo de datos y visualización de datos abiertos #siglibre9Periodismo de datos y visualización de datos abiertos #siglibre9
Periodismo de datos y visualización de datos abiertos #siglibre9
 
myHealthHackmedicine
myHealthHackmedicinemyHealthHackmedicine
myHealthHackmedicine
 
Big Data y Salud
Big Data y SaludBig Data y Salud
Big Data y Salud
 
Arduino: Control de motores
Arduino: Control de motoresArduino: Control de motores
Arduino: Control de motores
 
Entrada/salida analógica con Arduino
Entrada/salida analógica con ArduinoEntrada/salida analógica con Arduino
Entrada/salida analógica con Arduino
 
Entrada/Salida digital con Arduino
Entrada/Salida digital con ArduinoEntrada/Salida digital con Arduino
Entrada/Salida digital con Arduino
 
Presentación Laboratorio de Fabricación Digital UPNA 2014
Presentación Laboratorio de Fabricación Digital UPNA 2014Presentación Laboratorio de Fabricación Digital UPNA 2014
Presentación Laboratorio de Fabricación Digital UPNA 2014
 
Conceptos de electrónica - Laboratorio de Fabricación Digital UPNA 2014
Conceptos de electrónica - Laboratorio de Fabricación Digital UPNA 2014Conceptos de electrónica - Laboratorio de Fabricación Digital UPNA 2014
Conceptos de electrónica - Laboratorio de Fabricación Digital UPNA 2014
 
Introducción a la impresión 3D
Introducción a la impresión 3DIntroducción a la impresión 3D
Introducción a la impresión 3D
 
Vidas Contadas
Vidas ContadasVidas Contadas
Vidas Contadas
 
La vida y trabajo de Shinichi Suzuki
La vida y trabajo de Shinichi SuzukiLa vida y trabajo de Shinichi Suzuki
La vida y trabajo de Shinichi Suzuki
 
Arduino: entrada/salida analógica
Arduino: entrada/salida analógicaArduino: entrada/salida analógica
Arduino: entrada/salida analógica
 

Último

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 

Último (10)

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 

Arduino: Programando el Simon dice