FRDM-KL46Z_Pasos Es un programa que permite controlar un Motor a Pasos en sus diferntes modos de operación y tampbien permite controlar un Motor de CD en Modo ON-OFF Adelante y Atrás
Dependencies: mbed Debounced tsi_sensor TSI TextLCD MMA8451Q USBDevice
main.cpp
- Committer:
- Antulius
- Date:
- 2018-05-11
- Revision:
- 0:a935d23434d9
- Child:
- 1:e7f73d96ddde
File content as of revision 0:a935d23434d9:
/******************************************************************************* * * ARCHIVO: main.cpp * * PROYECTO: FRDM-KL46Z_USBMouse * * PROCESADOR: MKL46Z256VLL4 * * HERRAMIENTA: Mbed * * DESCRIPCION: El programa emula a un mouse USB. Utiliza el acelerómetro para * detectar el movimieto y el TSI para simular los botones. * Una vez descargado el programa cambiar el Cable del SDA al USB * * AUTOR(ES): Antulio Morgado Valle * * VERSION: 1.0 * * REVISION: 0 * * RELEASE: 0 * * BUG & FIXES: * * FECHA: 10/20/2014 * *******************************************************************************/ #include "mbed.h" #include "USBMouse.h" //libreria para la Interface USB #include "TSISensor.h" //libreria Touch Sensor Interface #include "MMA8451Q.h" //libreria para la interface del acelerómetro #define MMA8451_I2C_ADDRESS (0x1d<<1) USBMouse mouse; //activa la función del mouse USB TSISensor tsi; //activa el Touch Sensor Interface /* #=============================================================================== | | P R O G R A M A P R I N C I P A L | #================================================================================ */ int main() { MMA8451Q acc(PTE25,PTE24,MMA8451_I2C_ADDRESS); //DATO,RELOJ,DIRECCION int16_t x = 0; int16_t y = 0; int32_t desplazamiento = 5; float boton = 0; bool izquierda = 0; bool centro = 0; bool derecha = 0; while (1) { x = acc.getAccX()*(desplazamiento+5); y = -acc.getAccY()*desplazamiento; mouse.move(y,x); boton = tsi.readPercentage(); izquierda = 0; derecha = 0; if (boton > 0.0) { if (tsi.readPercentage() < 0.3) derecha = 1; // Lee el TSI para buscar el boton derecho // if (tsi.readPercentage() >=0.33 <=0.66) centro = 1; // Lee el TSI para buscar el boton central if (tsi.readPercentage() > 0.7) izquierda = 1; // Lee el TSI para buscar el boton izquierdo } if (izquierda) mouse.click(MOUSE_LEFT); // Activa el click del botón izquierdo if (derecha) mouse.click(MOUSE_RIGHT); // Activa el click del botón derecho wait(0.001); } } /* +-------------------------------------------------------------------------------- | EJERCICIO | | 1.- Modificar el programa para que acepte tambien las funciones: mouse.doubleclick(MOUSE_LEFT); | 2.- Agregar al programa la función de scroll utilizando el botón central y el eje z | utilizar MOUSE_MIDDLE | | Sugerencia: Revisar USBMouse.cpp y USBMouse.h | +-------------------------------------------------------------------------------- | | T H E A N T U L I U S T E A M | Research, Development, Systems Equipment, Support & Spare Parts I n c. | (C) Copyright 1989-2014, All rigths Reserved | | This program is licensed under rules of | THE BEANERS TECHNOLOGIES PROYECT +------------------------------------------------------------------------------- */