pto el que lo leakgk

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
afroid
Date:
Tue Nov 03 20:24:55 2020 +0000
Parent:
2:a0c7513fb634
Commit message:
jgvkjfg

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Fri Jun 06 03:04:48 2014 +0000
+++ b/main.cpp	Tue Nov 03 20:24:55 2020 +0000
@@ -1,17 +1,44 @@
-//Test of cheap 13.56 Mhz RFID-RC522 module from eBay
-//This code is based on Martin Olejar's MFRC522 library. Minimal changes
-//Adapted for Nucleo STM32 F401RE. Should work on other Nucleos too
+
 
-//Connect as follows:
-//RFID pins        ->  Nucleo header CN5 (Arduino-compatible header)
-//----------------------------------------
-//RFID IRQ=pin5    ->   Not used. Leave open
-//RFID MISO=pin4   ->   Nucleo SPI_MISO=PA_6=D12
-//RFID MOSI=pin3   ->   Nucleo SPI_MOSI=PA_7=D11
-//RFID SCK=pin2    ->   Nucleo SPI_SCK =PA_5=D13
-//RFID SDA=pin1    ->   Nucleo SPI_CS  =PB_6=D10
-//RFID RST=pin7    ->   Nucleo         =PA_9=D8
-//3.3V and Gnd to the respective pins                              
+char whoAmI ;
+#define MPU6050                          0x68<<1  // Device address when ADO = 0
+#define RA_WHO_AM_I         0x75
+#define RA_CONFIG           0x1A
+#define RA_USER_CTRL        0x6A
+#define RA_PWR_ADDR         0x6B
+#define RA_SMPLRT_DIV       0x19
+#define RA_GYRO_CONFIG      0x1B
+#define RA_ACCEL_CONFIG     0x1C
+#define RA_INT_PIN_CFG      0x37
+#define RA_ACCEL_XOUT_H     0x3B
+#define RA_ACCEL_XOUT_L     0x3C
+#define RA_ACCEL_YOUT_H     0x3D
+#define RA_ACCEL_YOUT_L     0x3E
+#define RA_ACCEL_ZOUT_H     0x3F
+#define RA_ACCEL_ZOUT_L     0x40
+#define RA_TEMP_OUT_H       0x41
+#define RA_TEMP_OUT_L       0x42
+#define RA_GYRO_XOUT_H      0x43
+#define RA_GYRO_XOUT_L      0x44
+#define RA_GYRO_YOUT_H      0x45
+#define RA_GYRO_YOUT_L      0x46
+#define RA_GYRO_ZOUT_H      0x47
+#define RA_GYRO_ZOUT_L      0x48
+#define AF_SEL                          0x00 
+#define ACC_HPF                         0x00  
+#define FS_SEL                          0x00  
+#define RA_PWR_MGMT_1           0x00
+#define USER_CTRL               0x00
+#define ACC_SELF_TEST_X         0x00
+#define ACC_SELF_TEST_Y         0x00
+#define ACC_SELF_TEST_Z         0x00
+#define G_SELF_TEST_X           0x00
+#define G_SELF_TEST_Y           0x00
+#define G_SELF_TEST_Z           0x00
+#define PIN_CFG                         2
+#define CONFIG                          4
+#define SMPLRT_DIV                  19
+                       
                               
 #include "mbed.h"
 #include "MFRC522.h"
@@ -19,49 +46,176 @@
 // Nucleo Pin for MFRC522 reset (pick another D pin if you need D8)
 #define MF_RESET    D8
 
-DigitalOut LedGreen(LED1);
-
+DigitalOut led(D4);
+DigitalOut ledG(D3);
+DigitalOut led3(D5);
+DigitalIn boton(PC_13); // 0 - presionado 
+int aux = 0 ;
+int aux2 = 0;
+int signal = 0;
 //Serial connection to PC for output
 Serial pc(SERIAL_TX, SERIAL_RX);
-
+I2C i2c(D14, D15);
 MFRC522    RfChip   (SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS, MF_RESET);
-
-int main(void) {
-  pc.printf("starting...\n");
-
-  // Init. RC522 Chip
-  RfChip.PCD_Init();
+void giroscope();
+void rfid();
+void InitMPU();
+//int ReadData(int adress_L, int adress_H);
+char reg_value[2];
+ void WriteData(uint8_t address, uint8_t subAddress, uint8_t data);
+int ReadData(int adress_L, int adress_H);
 
-  while (true) {
-    LedGreen = 1;
-
-    // Look for new cards
-    if ( ! RfChip.PICC_IsNewCardPresent())
-    {
-      wait_ms(500);
-      continue;
+void giroscope(){
+    while(1) { 
+                pc.printf(" ");
+/*
+        pc.printf("*");
+        pc.printf("%i\t",ReadData(RA_ACCEL_XOUT_L ,RA_ACCEL_XOUT_H));
+        pc.printf("%i\t",ReadData(RA_ACCEL_YOUT_L ,RA_ACCEL_YOUT_H));
+        pc.printf("%i\t",ReadData(RA_ACCEL_ZOUT_L ,RA_ACCEL_ZOUT_H));
+        pc.printf("\n\r");*/
+       // pc.printf("%i\t",ReadData(RA_GYRO_XOUT_L ,RA_GYRO_XOUT_H));
+        pc.printf("%i\t",ReadData(RA_GYRO_YOUT_L ,RA_GYRO_YOUT_H));
+        //pc.printf("%i\t",ReadData(RA_GYRO_ZOUT_L ,RA_GYRO_ZOUT_H));
+        pc.printf("\n\r");
+        //wait_us(2e6);
+        
+  }
+    
+    
     }
 
-    // Select one of the cards
-    if ( ! RfChip.PICC_ReadCardSerial())
-    {
-      wait_ms(500);
-      continue;
-    }
-
-    LedGreen = 0;
 
-    // Print Card UID
-    pc.printf("Card UID: ");
-    for (uint8_t i = 0; i < RfChip.uid.size; i++)
-    {
-      pc.printf(" %X02", RfChip.uid.uidByte[i]);
+void rfid(){
+    
+    while(true){
+    if (boton == 0){
+        led = !led;
+        pc.printf("boton presionado\n\r");
+        pc.printf(" %X02",aux);
+        }
+             led=0;
+            // Look for new cards
+            if ( ! RfChip.PICC_IsNewCardPresent())
+            {
+              wait_ms(200);
+              //pc.printf("1 ");
+              pc.printf("%i\t\n\r",ReadData(RA_GYRO_YOUT_L ,RA_GYRO_YOUT_H));
+              continue;
+            }
+        
+            // Select one of the cards
+            if ( ! RfChip.PICC_ReadCardSerial())
+            {
+              wait_ms(200);
+              continue;
+            }
+        
+        
+            led=1;
+            // Print Card UID
+           // pc.printf("Card UID: ");
+            for (uint8_t i = 0; i < RfChip.uid.size; i++)
+            {
+             /* pc.printf(" %X02", RfChip.uid.uidByte[i]);
+              pc.printf("-A1-\n\r");*/
+                         if (aux == 0) {
+              
+                          aux = RfChip.uid.uidByte[i]; //registra la primera tarjeta que entre
+                          led3 = 1;
+                          aux2 = 2;
+                         
+                        }else if (aux2 ==2){
+                            
+                            
+                            aux2 = RfChip.uid.uidByte[i]; //registrar tarjeta
+                            ledG = 1;  
+                            led3 = 0; 
+                            signal = 1;
+                            
+                                                       
+                       }else if (RfChip.uid.uidByte[i] == aux){ 
+                         
+                            ledG = 1;  
+                            led3 = 0;
+                            signal = 1; 
+                            pc.printf("15000\n\r");
+                            /*------*/
+                            wait_us(5e6);
+                            ledG = 0;
+                            signal = 0;
+                            pc.printf("-15000\n\r");
+                            led3 = 1;
+                                                       
+                       }     
+            }    
+    
+        pc.printf("\n\r");
+        
     }
-    pc.printf("\n\r");
+}
+
+void leer (){
+    if (boton == 1){
+        led = !led;
+        pc.printf("boton presionado\n\r");
+        }
+        
+}
+int ReadData(int adress_L, int adress_H){
+        char data_L;
+    char data_H;
+    char adress_data_L[1] ;
+    char adress_data_H[1] ;
+    adress_data_L[0]= adress_L;
+    adress_data_H[0]= adress_H;
+    i2c.write(MPU6050, adress_data_L, 1,1);
+    i2c.read(MPU6050,&data_L, 1,0);
+    i2c.write(MPU6050, adress_data_H, 1,1);
+    i2c.read(MPU6050,&data_H, 1,0);
+
+    return (int16_t)((data_H<<8) | data_L);
+    
+}
+ void WriteData(uint8_t address, uint8_t subAddress, uint8_t data)
+{
+   char data_write[2];
+   data_write[0] = subAddress;
+   data_write[1] = data;
+   i2c.write(address, data_write, 2, false);
+}
 
-    // Print Card type
-    uint8_t piccType = RfChip.PICC_GetType(RfChip.uid.sak);
-    pc.printf("PICC Type: %s \n\r", RfChip.PICC_GetTypeName(piccType));
-    wait_ms(1000);
+void InitMPU(){
+    WriteData(MPU6050,RA_PWR_ADDR,RA_PWR_MGMT_1);   
+    wait(0.1);
+    WriteData(MPU6050,RA_USER_CTRL,USER_CTRL);   
+    WriteData(MPU6050, RA_INT_PIN_CFG,PIN_CFG);
+    WriteData(MPU6050,RA_SMPLRT_DIV,SMPLRT_DIV); 
+    int GConfig = G_SELF_TEST_X | G_SELF_TEST_Y | G_SELF_TEST_Z | FS_SEL;
+    int AConfig = ACC_SELF_TEST_X | ACC_SELF_TEST_Y | ACC_SELF_TEST_Z | AF_SEL | ACC_HPF;
+    WriteData(MPU6050,RA_GYRO_CONFIG,GConfig); 
+    WriteData(MPU6050,RA_ACCEL_CONFIG,AConfig); 
+
+}
+
+int main(void) {
+  pc.baud(9600);
+  i2c.frequency(400000);
+  InitMPU();
+  
+  pc.printf("starting...\n\r");
+   
+    
+  // Init. RC522 Chip
+  RfChip.PCD_Init();
+    
+    
+    
+  while (true) {
+    pc.printf("buscando\n\r");
+    //pc.attach(&leer);
+    
+    rfid();
+     //wait_ms(200);
   }
 }
\ No newline at end of file
--- a/mbed.bld	Fri Jun 06 03:04:48 2014 +0000
+++ b/mbed.bld	Tue Nov 03 20:24:55 2020 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/mbed_official/code/mbed/builds/0b3ab51c8877
\ No newline at end of file
+https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400
\ No newline at end of file