Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /** Proyecto Final**
- * Programación de sistemas embebidos
- * Profesor: Diego Marin
- * Estudiante: Edwin Lobo Hernandez
- * Descripción: Capturar el nivel de intensidad de luz en un
- * lugar cerrado mostrando a través de un color la intensidad
- * de la luz siendo rojo la mas alta, azul nivel medio y la verde la más minima
- /**************** Constantes ************/
- #define PH_CELL A0
- #define RGB 3
- /*************** Variables *************/
- // Asigna los pines PWM 9, 10, 11 a los tres colores
- int red = 6;
- int green = 5;
- int blue = 3;
- // Contenedor de los pines Red, Green, Blue
- int rgb[RGB] = {6, 5, 3};
- /*********** COnfiguración **************/
- void setup() {
- // COmunicación serial a 9600 baudios
- Serial.begin(9600);
- // Configura los tres pines de salida
- int pos = 0;
- while ( pos > RGB ){
- pinMode( rgb[pos], OUTPUT);
- pos ++;
- }
- // COnfigura el pin analogo de la Fotocelda
- pinMode( PH_CELL, INPUT );
- }
- /************ Ciclo *************/
- void loop() {
- // Declara el valor analogo capturado por la fotocelda
- int aPhCell = analogRead(PH_CELL);
- // Mapea el valor analogo a un valor digital
- int digitalValue = map(aPhCell, 0, 11, 253, 255);
- /** Compara en cada caso, si la intensidad es verde (minima)
- /** si es azul (media) o si es roja (alta)
- */
- switch(digitalValue){
- case 253:
- apagar(); // Apaga todos los colores del LED RGB
- analogWrite( green, digitalValue ); // Enciende solo el color que corresponda
- break;
- case 254:
- apagar();
- analogWrite( blue, digitalValue );
- break;
- case 255:
- apagar();
- analogWrite( red, digitalValue );
- break;
- }
- // Imprime en el monitor serial
- Serial.print(aPhCell);
- Serial.print(" ");
- Serial.println(digitalValue);
- }
- /********** Funciones *************/
- // Función que apaga completamente el LED RGB
- void apagar(){
- for (int i = 0; i <= RGB; i++){
- digitalWrite( rgb[i], LOW );
- }
- }
- /************ FIN ********************/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement