wtorek, 29 kwietnia 2014

FRDM-KL46Z - płynna regulacja jasności diod za pomocą slidera

Jak pisałem w poprzednim odcinku wykorzystamy sobie slidera do płynnej regulacji
jasności naszych dwóch diod. W zależności w którą stronę będziemy paluchem
ślizgać po sliderze jedna z diod będzie się płynnie rozjaśniać a druga przyciemniać.
Generalnie przykład kodu jest nieznacznie rozbudowany w stosunku do poprzedniego
odcinka. Najważniejsze fragmenty kodu zawierają komentarz.

Kodzik:



 #include "mbed.h"
#include "SLCD.h"
#include "TSISensor.h"

SLCD slcd; //SegmentLCD

TSISensor slider; //Touch Slider
PwmOut rLED(LED_RED);       //PTE29
PwmOut gLED(LED_GREEN);

struct KL46_SENSOR_DATA {
    int   sw1State;
    int   sw3State;
    
    float   slider;
    float   light;

} sensorData;
#define sD sensorData


int main() {

 
    while (true) {
           
    
    slcd.DP(0, false); slcd.DP(1, false); slcd.DP(2, false); //wykasowanie kropek między segmentami
    sD.slider = slider.readPercentage();
           
    slcd.printf("%1.2f", slider.readPercentage()); //wysyłamy wartość slidera na nasz lcd
      
    if(sD.slider)   //sprawdzamy czy ktoś dotyka slidera
    {
        gLED = slider.readPercentage(); //pwm na diodę zieloną
        if(gLED >= 0.95) gLED = 1.0f;     
        rLED = 1.0f - slider.readPercentage(); //pwm na diodę czerowną
        if(rLED >=0.95)  rLED = 1.0f;  
    } 
         
    slcd.CharPosition = 0; //zapobięgnięcie skrolowania wyświetlacza 
    wait(0.01);
    
    }
}

 

Oraz filmik heh pokazujący efekt świetlny:)



Oczywiście jak zwykle życzę przyjemnej zabawy :)

Brak komentarzy:

Prześlij komentarz