Proyecto final de semestre: Se desarrollo un vehículo que recibe comandos por el puerto serial y realiza las siguientes funciones según el comando sea el comando recibido: - Genera distintos tonos por un buzzer. - Controla el movimiento de un carro (con 2 motores) con comandos - Controla el movimiento de un carro (con 2 motores) con Joystick. - Lee y envía el color leido por el puerto serial al PC - Muestra los colores leídos por una pantalla FFT instalada en el vehículo.

Dependencies:   mbed UniGraphic

scolor_TCS3200.cpp

Committer:
CCastrop1012
Date:
2021-09-03
Revision:
0:3a420fc22672

File content as of revision 0:3a420fc22672:

#include "mbed.h"
#include "scolor_TCS3200.h"


scolor_TCS3200::scolor_TCS3200(PinName s0, PinName s1, PinName s2, PinName s3, PinName s_in) : 
_s0(s0), _s1(s1), _s2(s2), _s3(s3), _s_in(s_in) 
{
    SetMode(SCALE_100);

};
 

long scolor_TCS3200::ReadRed()   { _s2=0;  _s3=0; return pulsewidth();}
long scolor_TCS3200::ReadBlue()  { _s2=0;  _s3=1; return pulsewidth();}
long scolor_TCS3200::ReadClear() { _s2=1;  _s3=0; return pulsewidth();}
long scolor_TCS3200::ReadGreen() { _s2=1;  _s3=1; return pulsewidth();}

void scolor_TCS3200::SetMode(uint8_t mode) {
    switch (mode){
        case SCALE_100:  _s0= 1; _s1=1; break;
        case SCALE_20:   _s0=1 ; _s1=0; break;
        case SCALE_2:    _s0=0 ; _s1=1; break;
        case POWER_DOWN: _s0=0 ; _s1=0; break;
    } 
};
 
long  scolor_TCS3200::pulsewidth() {
    while(!_s_in);
    timer.start();
    while(_s_in);
    timer.stop();
    float pulsewidth_v = timer.read_us();
    timer.reset();
    return pulsewidth_v;
};