Practica arduino PDF

Title Practica arduino
Author Pepito Pere
Course Periféricos e Interfaces
Institution Universidad de Las Palmas de Gran Canaria
Pages 6
File Size 119.3 KB
File Type PDF
Total Downloads 96
Total Views 149

Summary

Práctica de arduino...


Description

// Definir los pines a utilizar (como en la transparencia) const int lee_scl = 2; const int lee_sda = 3; const int esc_scl = 4; const int esc_sda = 5; // Dirección física del primer chip de memoria: 1010 000 r/w tura; A1:lectura) // Dirección física del segundo chip de memoria: 1010 100 r/w tura; A9:lectura) // definición de direcciones para leer y escribir byte wchip0 = 0xA0; byte rchip0 = 0xA1; byte wchip1 = 0xA8; byte rchip1 = 0xA9;

(A0:escri (A8:escri

// otras variables que necesite int menu; int dir; int dat;

void setup() { // Inicializar canal serie y definición de la dirección de los pines (c omo en la transparencia Serial.begin(9600); pinMode(lee_sda, INPUT); pinMode(lee_scl, INPUT); pinMode(esc_sda, OUTPUT); pinMode(esc_scl, OUTPUT); Serial.print("\nOpciones:\n"); Serial.print("1. Guardar dato en una posicion de memoria\n"); Serial.print("2. Leer una posicion de memoria\n"); Serial.print("3. Inicializar memoria a un valor\n"); Serial.print("4. Mostrar contenido de los 128 bytes\n"); } ///////////////////////////////////////////////////////////////////////// ///// // Definición de funciones básicas para el manejo de las señales del bus i2c / ///////////////////////////////////////////////////////////////////////// ///// // Ponemos el código de start() de acuerdo a la tabla dada en las transpa rencias, el resto uds. void start(){

digitalWrite(esc_sda, HIGH); digitalWrite(esc_scl, HIGH); // Esperamos a que ambas señales estén a 1 (seguro que lo están: solo h ay un máster) while( (digitalRead(lee_sda) & digitalRead(lee_scl)) == 0 ); digitalWrite(esc_sda, LOW); digitalWrite(esc_scl, HIGH); digitalWrite(esc_sda, LOW); digitalWrite(esc_scl, LOW); } // Complete el resto de las funciones según las tablas que aparecen en l as transparencias void stop(){ digitalWrite(esc_sda, LOW); digitalWrite(esc_scl, LOW); digitalWrite(esc_sda, LOW); digitalWrite(esc_scl, HIGH); digitalWrite(esc_sda, HIGH); digitalWrite(esc_scl, HIGH); digitalWrite(esc_sda, HIGH); digitalWrite(esc_scl, HIGH); } void e_bit1(){ digitalWrite(esc_sda, HIGH); digitalWrite(esc_scl, LOW); digitalWrite(esc_sda, HIGH); digitalWrite(esc_scl, HIGH); digitalWrite(esc_sda, HIGH); digitalWrite(esc_scl, HIGH); digitalWrite(esc_sda, HIGH); digitalWrite(esc_scl, LOW); } void e_bit0(){ digitalWrite(esc_sda, LOW); digitalWrite(esc_scl, LOW); digitalWrite(esc_sda, LOW); digitalWrite(esc_scl, HIGH); digitalWrite(esc_sda, LOW); digitalWrite(esc_scl, HIGH); digitalWrite(esc_sda, LOW);

digitalWrite(esc_scl, LOW); } byte r_bit(){ digitalWrite(esc_sda, HIGH); digitalWrite(esc_scl, LOW); digitalWrite(esc_sda, HIGH); digitalWrite(esc_scl, HIGH); while( (digitalRead(lee_sda)==0 || digitalRead(lee_sda)==1 & digitalRea d(lee_scl)) == 0 ); digitalWrite(esc_sda, HIGH); digitalWrite(esc_scl, LOW); } ///////////////////////////////////////////////////////////// // Definición de funciones útiles basadas en las anteriores / ///////////////////////////////////////////////////////////// // Función que escribe un byte en el bus i2c bit a bit (conversión parale lo-serie)empezando por el bit 7 // Damos una posible implementación, puede hacerse de otra forma, pero és ta parece bastante óptima void e_byte(byte dato){ for(int i=0; i...


Similar Free PDFs