Sie sind auf Seite 1von 6

Primer punto memorias

#include "mbed.h"

I2C memoria1(PB_7, PB_6);//Declaración del protocolo de comunicación I2C memoria1

I2C memoria2(PB_7, PB_6);//Declaración del protocolo de comunicación I2C memoria2

Serial pc(USBTX, USBRX); //tx, rx

char valor1,valor2;

char DATO;

const int addr1 = 0xA0;

const int addr = 0x80;

char w1[3];

char w[3];

//Direccion de con el pin de direccionamiento en 0

void escribir()

pc.printf("escribiendo memoria1\r\n");

char config[3]; //Arreglo de tres posiciones para configuración del pointer registro

config[0] = 0x00; //set pointer Registro de configuración

config[1] = 0x80; // config byte 1

config[2] = 0xB0; // config byte2

memoria2.write(addr, config,3);

memoria2.write(DATO);

memoria2.stop();

wait(0.1);

void leer()

{ char memoria2_read[3];

wait(1); pc.printf("leer de memoria1\r\n");

memoria2_read[0] = 0xb1;

memoria2.read(addr, memoria2_read, 3);

valor1 = memoria2.read(0x0f);

pc.printf("%c\r\n",valor1);

memoria2.stop();

wait(0.1);

}
int main() {

while(1){

pc.printf("ingrese dato a guardar\r\n");

DATO = pc.getc();

pc.printf("guardando informacion en memorias\r\n");

escribir();

w[0] = 0x6a; // escribir en la memoria1 direccion

w[1] = 0x60;

w[2] = 0xb1;

memoria1.write(DATO);

memoria1.stop();

wait(0.1);

pc.printf("iniciando lectura\r\n");

leer();

pc.printf("leer de memoria2\r\n");

w1[0] = 0x2b; // Set cmd to HEX 1F to read from


memoriaoriaoriaoriaoriaoriaoriaoriaoriaoria1 address 0f to SIF

memoria1.read(addr1, w1, 3); // addr + 1 byte cmd = f01F

valor2 = memoria1.read(0x0f); // read from SIF to I2C

pc.printf("%c\r\n",valor2);

memoria1.stop();

wait(0.1);

pc.printf("iniciando comparacion\r\n");

if(valor1==valor2){

pc.printf("%c\r\n",valor1);

pc.printf("%c\r\n",valor2);

pc.printf("memorias iguales\r\n ");

else {

pc.printf(" inesactas \r\n");

}
Segundo punto sensores

#include "mbed.h"

Serial pc(USBTX, USBRX); //tx, rx

float valorsensor1; // variable para guardar lectura del puerto análogo

DigitalOut toldo1(PB_6);

DigitalOut toldo2 (PC_7);

float valorsensor2;

float temperatura;

AnalogIn analog_value (A0);//pin análogo donde va ir el valorsensor1

AnalogIn ldr(A1);//pin de lectura delldr

DigitalIn pulsador1(USER_BUTTON);

DigitalIn pulsador2(PA_3);

int main() {

while(1) {

valorsensor1=analog_value.read(); //Leer el valor análogo y lo convierte (Valores 1-0)

valorsensor1=(valorsensor1*33)/10; //Es caliza la medida

printf("Medición = %.2f v\n\r",valorsensor1);

temperatura=(valorsensor1*100);

printf("temperatura %.2f ºc \n\r",temperatura);

valorsensor2 =ldr.read(); //leer el valor de la ldr

valorsensor2=(valorsensor2*33)/10;

printf("luz es %.2f lux\n\r",valorsensor2);

wait(1);

if (pulsador1==0){//condición para abrir toldo automático de lo contrario se cancela proceso


automático

if ((temperatura<24)&&(valorsensor2<2))//condiciones para que se abra el toldo

{ // abrir toldo

toldo1=1;

toldo2=0;

else if (valorsensor2<1.5) //condición de apertura del toldo


{

toldo1=1;

toldo2=0;

if (pulsador2==0){//condición para abrir toldo automático de lo contrario se cancela proceso


automático

if((temperatura>=24)&&(valorsensor2>=2))// condición para cerrar el toldo

// Cerrar toldo

toldo1=0;

toldo2=1;

wait(0.2);

Tercer punto

#include "mbed.h"
//SE DEFINE EL DISPOSITIVO QUE LLEVARA LA CLASR "SPI"

SPI deviceM(PB_15, PB_14, PC_7);

DigitalOut ssel (PB_9); //SE DEFINE EL LED QUE ACTIVARA EL DISPOSITIVO

DigitalOut ssel2 (PB_12); // SE DEFINE EN CASO DE QUE HAYAN DOS DISPOSITIVOS

// FUNCION EL CUAL ENVIA EL DATO JUNTO CON LA DIRECCION DE LA COLUMNA


CORRESPONDIENTE AL PRIMER O SEGUNDO DISPOSITIVO

void sendspi(unsigned char d1, unsigned char d2 )

deviceM.unlock();

ssel=0; // SELECCIONA EL PRIMER DISPOSOTIVO

deviceM.write(d1); //ESCRIBE ADDRES

deviceM.write(d2); // ESCRIBE DATA

ssel=1;

deviceM.lock();

deviceM.unlock();

ssel2=0;

deviceM.write(d1); // UTILIZA EN CASO DE QUE SEAN DOS DOSPOSITIVOS

deviceM.write(d2);

ssel2=1;

deviceM.lock();

int main()

sendspi(0x0c,1); // Shutdown, coloca en Normal Operation

sendspi(0x0F,1); //Display Test

wait (1);

sendspi(0x0f,0); ////Display Test, Normal Operation

wait (1);

}
3.2

#include "mbed.h"

SPISlave device(p5, p6, p7, p8); // mosi, miso, sclk, ssel

int main() {

device.reply(0x00); // Prime SPI with first reply

while(1) {

if(device.receive()) {

int v = device.read(); // Read byte from master

v = (v + 1) % 0x100; // Add one to it, modulo 256

device.reply(v); // Make this the next reply

Das könnte Ihnen auch gefallen