SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
ARDUINO
CLASE 5
VICTOR TOMANGUILLA
victor.tomanguilla@uni.pe
Adaptador MicroSD
Descripción de Pines
• CS (Chip Select): Línea encargada de seleccionar y a su vez, habilitar
un esclavo.
• SCK(Synchronous Clock): Línea proveniente del maestro encarga de
enviar la señal de reloj para sincronizar los dispositivos.
• MOSI (Master Out Slave In): Línea utilizada para llevar los bits que
provienen del maestro hacia el esclavo.
• MISO (Master In Slave Out): Línea utilizada para llevar los bits que
provienen del esclavo hacia el maestro.
• VCC: Línea a Fuente. (4.5V – 5.5V)
• GND: Línea a tierra.
Conexión con Arduino
• Para poder usar este módulo es necesario conocer a profundidad el
protocolo de comunicación SPI (Serial Peripheral Interface).
• Para facilitarnos las cosas Arduino tiene desarrollada una librería para
trabajar con este shield. Para usarla simplemente la importamos de la
siguiente manera:
#include <SD.h>
Librería SD - Funciones
• SD.begin(cspin)
Inicializa la biblioteca SD y la tarjeta, como parámetro se le indica el pin
CS al que está conectado el modulo.
Librería SD - Funciones
• SD.exists(filename)
Comprueba si existe el archivo especificado, filename es el nombre del
archivo y/o directorio en la tarjeta SD si este existe la función nos
retorna un true, de lo contrario retorna false.
Librería SD - Funciones
• SD.mkdir(directory)
Crea el directorio especificado, si los subdirectorios no existen, también
se crearan. Por ejemplo: SD.mkdir(“Arduino/proyecto1/archivos), crea
la carpeta “archivos” y si las carpetas Arduino y proyecto1 no existen,
entonces también se crearan. La función retorna true si la creación del
directorio fue exitosa de lo contrario nos retorna un false.
Librería SD - Funciones
• SD.remove(filename)
Elimina el archivo (filename) de la tarjeta SD, se debe de incluir el
directorio. Solo elimina el archivo más no el directorio. Devuelve true
se logra eliminar el archivo de lo contrario nos retorna un false.
Librería SD - Funciones
• SD.rmdir(dirname)
Eliminar el directorio (dirname) de la tarjeta SD. El directorio debe estar
vacío. Devuelve TRUE si la eliminación del directorio tuvo éxito o FALSE
en caso contrario.
Librería SD - Funciones
• SD.open(filepath, mode)
Abre el archivo especificado y se debe de incluir el directorio si el
archivo está en carpetas. Si el archivo no existe, se creara un archivo
con el nombre especificado, pero no será posible crear el directorio si
este no existe. Se puede abrir un archivo como solo lectura (si mode es
FILE_READ) o como lectura y escritura (si mode es FILE_WRITE), el
modo por defecto en caso no se especifique es FILE_READ.
Este método retorna un objeto del tipo FILE.
Clase File - Funciones
• file.available()
Compruebe si hay bytes disponibles para leer en el archivo y retorna el
número de bytes disponibles.
Clase File - Funciones
• file.read()
Lee un byte de la variable File (archivo abierto anteriormente con
SD.open()).
Clase File - Funciones
• file.write(data)
Escribe un byte en el archivo, el archivo debe estar abierto en modo
lectura y escritura.
Clase File - Funciones
• file.print(data)
Esta función tiene las mismas características que un Serial.print();
data puede ser una variable o texto, el cual será enviado como
caracteres.
Clase File - Funciones
• file.size()
Retorna el tamaño en bytes del archivo.
Clase File - Funciones
• file.position()
Retorna la posición actual en donde se leerá o escribirá el siguiente
byte.
Clase File - Funciones
• file.seek(pos)
Nos ubicamos en una posición específica en el archivo. Pos debe ser un
número entre 0 y el tamaño en bytes del archivo.
Clase File - Funciones
• file.close()
Cerramos el archivo, y recién en este momento los datos se guardan en
la SD, pudiendo extraer de forma segura nuestra SD.
Modo de Conexión
Ejemplo
• Leer datos de la memoria SD.
Solución
#include <SD.h>
File myFile;
void setup()
{
Serial.begin(9600);
Serial.print("Iniciando SD ...");
if (!SD.begin(4)) {
Serial.println("No se pudo inicializar");
return;
}
Serial.println("inicializacion exitosa");
myFile = SD.open("prueba.txt");
if (myFile) {
Serial.println("prueba.txt:");
while (myFile.available()) {
Serial.write(myFile.read());
}
myFile.close();
}
else {
Serial.println("Error al abrir el archivo");
}
}
void loop()
{}
Ejemplo
• Escribir datos en la memoria SD.
Solución
#include <SD.h>
File myFile;
void setup()
{
Serial.begin(9600);
Serial.print("Iniciando SD ...");
if (!SD.begin(4)) {
Serial.println("No se pudo inicializar");return;
}
Serial.println("inicializacion exitosa");
}
void loop()
{
myFile = SD.open("datos.txt", FILE_WRITE);
if(myFile){
Serial.print("Escribiendo datos: ");
int pot = analogRead(0);
myFile.print("Tiempo(ms)="); myFile.print(millis());
myFile.print(", Potenciometro="); myFile.println(pot*5/1024);
myFile.close();
Serial.println("HECHO");
}
else{
Serial.println("Error al abrir el archivo");
}
delay(1000);
}
Android con Arduino
• Para realizar la conexión de Arduino con Android usaremos la
interface Bluetooth (Módulo HC-06)
• La aplicación en Android se desarrollará usando el framework
AppInventor.
Conexión
Desarrollo de la Aplicación
Desarrollo de la Aplicación
Desarrollo de la Aplicación
Desarrollo de la Aplicación
Código Arduino
char val; int ledPin12 = 12; int ledPin13 = 13;
void setup(){
Serial.begin(9600); pinMode(ledPin12, OUTPUT);
pinMode(ledPin13, OUTPUT);
}
void loop() {
if( Serial.available() )
val = Serial.read();
if( val == '0' ){
digitalWrite(ledPin12, LOW);
}
if( val == '1' ){
digitalWrite(ledPin12, HIGH);
}
if( val == '2' ){
digitalWrite(ledPin13, LOW);
}
if( val == '3' ){
digitalWrite(ledPin13, HIGH);
}
}
Referencias
• Página de Arduino:
https://www.arduino.cc/en/Reference/SD
• Página de App Inventor:
http://appinventor.mit.edu/explore/

Más contenido relacionado

Similar a Arduino clase5

Curso scjp 30 navegacion de archivos e io
Curso scjp 30   navegacion de archivos e ioCurso scjp 30   navegacion de archivos e io
Curso scjp 30 navegacion de archivos e ioprogramadorjavablog
 
Unidad iv almacenamiento de datos
Unidad iv   almacenamiento de datosUnidad iv   almacenamiento de datos
Unidad iv almacenamiento de datosWhaleejaa Wha
 
Unidad iv almacenamiento de datos
Unidad iv   almacenamiento de datosUnidad iv   almacenamiento de datos
Unidad iv almacenamiento de datosWhaleejaa Wha
 
Suarez l 2001 el paquete java io
Suarez l 2001 el paquete java ioSuarez l 2001 el paquete java io
Suarez l 2001 el paquete java ioLuis Lopez Ac
 
Curso scjp 30 navegacion de archivos e io
Curso scjp 30   navegacion de archivos e ioCurso scjp 30   navegacion de archivos e io
Curso scjp 30 navegacion de archivos e ioprogramadorjavablog
 
UNIX ESSENTIALS 3.4
UNIX ESSENTIALS 3.4UNIX ESSENTIALS 3.4
UNIX ESSENTIALS 3.4Julian696
 
Persistencia en Java - Serialización
Persistencia en Java - SerializaciónPersistencia en Java - Serialización
Persistencia en Java - SerializaciónCarlos Hernando
 
Temas programacion java_3
Temas programacion java_3Temas programacion java_3
Temas programacion java_3Wally IG
 
Actividad 3.4.lizeth carmona,jessica diaz,susana sanchez equipo9
Actividad 3.4.lizeth carmona,jessica diaz,susana sanchez equipo9Actividad 3.4.lizeth carmona,jessica diaz,susana sanchez equipo9
Actividad 3.4.lizeth carmona,jessica diaz,susana sanchez equipo9jessidi
 
Introduction to linux for bioinformatics
Introduction to linux for bioinformaticsIntroduction to linux for bioinformatics
Introduction to linux for bioinformaticsAlberto Labarga
 
Curso de Magento 1.9: Unidad Didáctica 08 Estructura de un Tema
Curso de Magento 1.9: Unidad Didáctica 08 Estructura de un TemaCurso de Magento 1.9: Unidad Didáctica 08 Estructura de un Tema
Curso de Magento 1.9: Unidad Didáctica 08 Estructura de un TemaDavid Vaquero
 

Similar a Arduino clase5 (20)

C++
C++C++
C++
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Curso scjp 30 navegacion de archivos e io
Curso scjp 30   navegacion de archivos e ioCurso scjp 30   navegacion de archivos e io
Curso scjp 30 navegacion de archivos e io
 
Unidad iv almacenamiento de datos
Unidad iv   almacenamiento de datosUnidad iv   almacenamiento de datos
Unidad iv almacenamiento de datos
 
Unidad iv almacenamiento de datos
Unidad iv   almacenamiento de datosUnidad iv   almacenamiento de datos
Unidad iv almacenamiento de datos
 
Suarez l 2001 el paquete java io
Suarez l 2001 el paquete java ioSuarez l 2001 el paquete java io
Suarez l 2001 el paquete java io
 
Archivos
ArchivosArchivos
Archivos
 
Lab6-POO
Lab6-POOLab6-POO
Lab6-POO
 
Curso scjp 30 navegacion de archivos e io
Curso scjp 30   navegacion de archivos e ioCurso scjp 30   navegacion de archivos e io
Curso scjp 30 navegacion de archivos e io
 
UNIX ESSENTIALS 3.4
UNIX ESSENTIALS 3.4UNIX ESSENTIALS 3.4
UNIX ESSENTIALS 3.4
 
Lliurex Sesion2
Lliurex Sesion2Lliurex Sesion2
Lliurex Sesion2
 
Memoria I
Memoria  IMemoria  I
Memoria I
 
Persistencia en Java - Serialización
Persistencia en Java - SerializaciónPersistencia en Java - Serialización
Persistencia en Java - Serialización
 
Temas programacion java_3
Temas programacion java_3Temas programacion java_3
Temas programacion java_3
 
Actividad 3.4.lizeth carmona,jessica diaz,susana sanchez equipo9
Actividad 3.4.lizeth carmona,jessica diaz,susana sanchez equipo9Actividad 3.4.lizeth carmona,jessica diaz,susana sanchez equipo9
Actividad 3.4.lizeth carmona,jessica diaz,susana sanchez equipo9
 
Introducción a la Programación Orientada a Objetos
Introducción a la Programación Orientada a ObjetosIntroducción a la Programación Orientada a Objetos
Introducción a la Programación Orientada a Objetos
 
Introduction to linux for bioinformatics
Introduction to linux for bioinformaticsIntroduction to linux for bioinformatics
Introduction to linux for bioinformatics
 
Migracion de datos
Migracion de datosMigracion de datos
Migracion de datos
 
Curso de Magento 1.9: Unidad Didáctica 08 Estructura de un Tema
Curso de Magento 1.9: Unidad Didáctica 08 Estructura de un TemaCurso de Magento 1.9: Unidad Didáctica 08 Estructura de un Tema
Curso de Magento 1.9: Unidad Didáctica 08 Estructura de un Tema
 
Comandos ms ms dos
Comandos ms ms dosComandos ms ms dos
Comandos ms ms dos
 

Último

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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 

Último (10)

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
 
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
 
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
 
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
 
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
 
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)
 
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
 
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...
 

Arduino clase5

  • 3. Descripción de Pines • CS (Chip Select): Línea encargada de seleccionar y a su vez, habilitar un esclavo. • SCK(Synchronous Clock): Línea proveniente del maestro encarga de enviar la señal de reloj para sincronizar los dispositivos. • MOSI (Master Out Slave In): Línea utilizada para llevar los bits que provienen del maestro hacia el esclavo. • MISO (Master In Slave Out): Línea utilizada para llevar los bits que provienen del esclavo hacia el maestro. • VCC: Línea a Fuente. (4.5V – 5.5V) • GND: Línea a tierra.
  • 4. Conexión con Arduino • Para poder usar este módulo es necesario conocer a profundidad el protocolo de comunicación SPI (Serial Peripheral Interface). • Para facilitarnos las cosas Arduino tiene desarrollada una librería para trabajar con este shield. Para usarla simplemente la importamos de la siguiente manera: #include <SD.h>
  • 5. Librería SD - Funciones • SD.begin(cspin) Inicializa la biblioteca SD y la tarjeta, como parámetro se le indica el pin CS al que está conectado el modulo.
  • 6. Librería SD - Funciones • SD.exists(filename) Comprueba si existe el archivo especificado, filename es el nombre del archivo y/o directorio en la tarjeta SD si este existe la función nos retorna un true, de lo contrario retorna false.
  • 7. Librería SD - Funciones • SD.mkdir(directory) Crea el directorio especificado, si los subdirectorios no existen, también se crearan. Por ejemplo: SD.mkdir(“Arduino/proyecto1/archivos), crea la carpeta “archivos” y si las carpetas Arduino y proyecto1 no existen, entonces también se crearan. La función retorna true si la creación del directorio fue exitosa de lo contrario nos retorna un false.
  • 8. Librería SD - Funciones • SD.remove(filename) Elimina el archivo (filename) de la tarjeta SD, se debe de incluir el directorio. Solo elimina el archivo más no el directorio. Devuelve true se logra eliminar el archivo de lo contrario nos retorna un false.
  • 9. Librería SD - Funciones • SD.rmdir(dirname) Eliminar el directorio (dirname) de la tarjeta SD. El directorio debe estar vacío. Devuelve TRUE si la eliminación del directorio tuvo éxito o FALSE en caso contrario.
  • 10. Librería SD - Funciones • SD.open(filepath, mode) Abre el archivo especificado y se debe de incluir el directorio si el archivo está en carpetas. Si el archivo no existe, se creara un archivo con el nombre especificado, pero no será posible crear el directorio si este no existe. Se puede abrir un archivo como solo lectura (si mode es FILE_READ) o como lectura y escritura (si mode es FILE_WRITE), el modo por defecto en caso no se especifique es FILE_READ. Este método retorna un objeto del tipo FILE.
  • 11. Clase File - Funciones • file.available() Compruebe si hay bytes disponibles para leer en el archivo y retorna el número de bytes disponibles.
  • 12. Clase File - Funciones • file.read() Lee un byte de la variable File (archivo abierto anteriormente con SD.open()).
  • 13. Clase File - Funciones • file.write(data) Escribe un byte en el archivo, el archivo debe estar abierto en modo lectura y escritura.
  • 14. Clase File - Funciones • file.print(data) Esta función tiene las mismas características que un Serial.print(); data puede ser una variable o texto, el cual será enviado como caracteres.
  • 15. Clase File - Funciones • file.size() Retorna el tamaño en bytes del archivo.
  • 16. Clase File - Funciones • file.position() Retorna la posición actual en donde se leerá o escribirá el siguiente byte.
  • 17. Clase File - Funciones • file.seek(pos) Nos ubicamos en una posición específica en el archivo. Pos debe ser un número entre 0 y el tamaño en bytes del archivo.
  • 18. Clase File - Funciones • file.close() Cerramos el archivo, y recién en este momento los datos se guardan en la SD, pudiendo extraer de forma segura nuestra SD.
  • 20. Ejemplo • Leer datos de la memoria SD.
  • 21. Solución #include <SD.h> File myFile; void setup() { Serial.begin(9600); Serial.print("Iniciando SD ..."); if (!SD.begin(4)) { Serial.println("No se pudo inicializar"); return; } Serial.println("inicializacion exitosa"); myFile = SD.open("prueba.txt"); if (myFile) { Serial.println("prueba.txt:"); while (myFile.available()) { Serial.write(myFile.read()); } myFile.close(); } else { Serial.println("Error al abrir el archivo"); } } void loop() {}
  • 22. Ejemplo • Escribir datos en la memoria SD.
  • 23. Solución #include <SD.h> File myFile; void setup() { Serial.begin(9600); Serial.print("Iniciando SD ..."); if (!SD.begin(4)) { Serial.println("No se pudo inicializar");return; } Serial.println("inicializacion exitosa"); } void loop() { myFile = SD.open("datos.txt", FILE_WRITE); if(myFile){ Serial.print("Escribiendo datos: "); int pot = analogRead(0); myFile.print("Tiempo(ms)="); myFile.print(millis()); myFile.print(", Potenciometro="); myFile.println(pot*5/1024); myFile.close(); Serial.println("HECHO"); } else{ Serial.println("Error al abrir el archivo"); } delay(1000); }
  • 24. Android con Arduino • Para realizar la conexión de Arduino con Android usaremos la interface Bluetooth (Módulo HC-06) • La aplicación en Android se desarrollará usando el framework AppInventor.
  • 26. Desarrollo de la Aplicación
  • 27. Desarrollo de la Aplicación
  • 28. Desarrollo de la Aplicación
  • 29. Desarrollo de la Aplicación
  • 30. Código Arduino char val; int ledPin12 = 12; int ledPin13 = 13; void setup(){ Serial.begin(9600); pinMode(ledPin12, OUTPUT); pinMode(ledPin13, OUTPUT); } void loop() { if( Serial.available() ) val = Serial.read(); if( val == '0' ){ digitalWrite(ledPin12, LOW); } if( val == '1' ){ digitalWrite(ledPin12, HIGH); } if( val == '2' ){ digitalWrite(ledPin13, LOW); } if( val == '3' ){ digitalWrite(ledPin13, HIGH); } }
  • 31. Referencias • Página de Arduino: https://www.arduino.cc/en/Reference/SD • Página de App Inventor: http://appinventor.mit.edu/explore/