Gestion de la couleur du rétroéclairage de l'écran LCD avec un potentiomètre

Dependencies:   mbed

Committer:
Kemix
Date:
Wed Mar 25 08:17:50 2015 +0000
Revision:
0:b4bc4c1ec1e8
Debut du code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kemix 0:b4bc4c1ec1e8 1 #include "mbed.h"
Kemix 0:b4bc4c1ec1e8 2
Kemix 0:b4bc4c1ec1e8 3 I2C link(I2C_SDA, I2C_SCL);
Kemix 0:b4bc4c1ec1e8 4 const int addr = 0x7C;
Kemix 0:b4bc4c1ec1e8 5
Kemix 0:b4bc4c1ec1e8 6 void Init(void){
Kemix 0:b4bc4c1ec1e8 7 char cmd[2];
Kemix 0:b4bc4c1ec1e8 8 cmd[0] = 0x80;
Kemix 0:b4bc4c1ec1e8 9 cmd[1] = 0x3C;
Kemix 0:b4bc4c1ec1e8 10 link.write(addr,cmd,2);
Kemix 0:b4bc4c1ec1e8 11 wait_us(100);
Kemix 0:b4bc4c1ec1e8 12
Kemix 0:b4bc4c1ec1e8 13 cmd[1] = 0x0F;
Kemix 0:b4bc4c1ec1e8 14 link.write(addr,cmd,2);
Kemix 0:b4bc4c1ec1e8 15 wait_us(100);
Kemix 0:b4bc4c1ec1e8 16
Kemix 0:b4bc4c1ec1e8 17 cmd[1] = 0x01;
Kemix 0:b4bc4c1ec1e8 18 link.write(addr,cmd,2);
Kemix 0:b4bc4c1ec1e8 19 wait_ms(2);
Kemix 0:b4bc4c1ec1e8 20
Kemix 0:b4bc4c1ec1e8 21 cmd[1] = 0x06;
Kemix 0:b4bc4c1ec1e8 22 link.write(addr,cmd,2);
Kemix 0:b4bc4c1ec1e8 23 wait_us(100);
Kemix 0:b4bc4c1ec1e8 24 }
Kemix 0:b4bc4c1ec1e8 25
Kemix 0:b4bc4c1ec1e8 26 void initRGB(void){
Kemix 0:b4bc4c1ec1e8 27 char cmd[2];
Kemix 0:b4bc4c1ec1e8 28
Kemix 0:b4bc4c1ec1e8 29 cmd[0] = 0x00;
Kemix 0:b4bc4c1ec1e8 30 cmd[1] = 0x00;
Kemix 0:b4bc4c1ec1e8 31 link.write(0xC4,cmd,2);
Kemix 0:b4bc4c1ec1e8 32 wait_us(100);
Kemix 0:b4bc4c1ec1e8 33
Kemix 0:b4bc4c1ec1e8 34 cmd[0] = 0x01;
Kemix 0:b4bc4c1ec1e8 35 cmd[1] = 0x00;
Kemix 0:b4bc4c1ec1e8 36 link.write(0xC4,cmd,2);
Kemix 0:b4bc4c1ec1e8 37 wait_us(100);
Kemix 0:b4bc4c1ec1e8 38
Kemix 0:b4bc4c1ec1e8 39 cmd[0] = 0x08;
Kemix 0:b4bc4c1ec1e8 40 cmd[1] = 0xAA;
Kemix 0:b4bc4c1ec1e8 41 link.write(0xC4,cmd,2);
Kemix 0:b4bc4c1ec1e8 42 wait_us(100);
Kemix 0:b4bc4c1ec1e8 43 }
Kemix 0:b4bc4c1ec1e8 44
Kemix 0:b4bc4c1ec1e8 45 void setup(char R,char G, char B){
Kemix 0:b4bc4c1ec1e8 46 char cmd[2];
Kemix 0:b4bc4c1ec1e8 47
Kemix 0:b4bc4c1ec1e8 48 cmd[0] = 0x02;
Kemix 0:b4bc4c1ec1e8 49 cmd[1] = B;
Kemix 0:b4bc4c1ec1e8 50 link.write(0xC4,cmd,2);
Kemix 0:b4bc4c1ec1e8 51 wait_us(100);
Kemix 0:b4bc4c1ec1e8 52
Kemix 0:b4bc4c1ec1e8 53 cmd[0] = 0x03;
Kemix 0:b4bc4c1ec1e8 54 cmd[1] = G;
Kemix 0:b4bc4c1ec1e8 55 link.write(0xC4,cmd,2);
Kemix 0:b4bc4c1ec1e8 56 wait_us(100);
Kemix 0:b4bc4c1ec1e8 57
Kemix 0:b4bc4c1ec1e8 58 cmd[0] = 0x04;
Kemix 0:b4bc4c1ec1e8 59 cmd[1] = R;
Kemix 0:b4bc4c1ec1e8 60 link.write(0xC4,cmd,2);
Kemix 0:b4bc4c1ec1e8 61 wait_us(100);
Kemix 0:b4bc4c1ec1e8 62 }
Kemix 0:b4bc4c1ec1e8 63
Kemix 0:b4bc4c1ec1e8 64
Kemix 0:b4bc4c1ec1e8 65 int main(void){
Kemix 0:b4bc4c1ec1e8 66 AnalogIn Pot(A0);
Kemix 0:b4bc4c1ec1e8 67
Kemix 0:b4bc4c1ec1e8 68 char data[12];
Kemix 0:b4bc4c1ec1e8 69 char R,G,B;
Kemix 0:b4bc4c1ec1e8 70
Kemix 0:b4bc4c1ec1e8 71 Init();
Kemix 0:b4bc4c1ec1e8 72 initRGB();
Kemix 0:b4bc4c1ec1e8 73
Kemix 0:b4bc4c1ec1e8 74 data[0] = 0x40;
Kemix 0:b4bc4c1ec1e8 75 data[1] = 'H';
Kemix 0:b4bc4c1ec1e8 76 data[2] = 'e';
Kemix 0:b4bc4c1ec1e8 77 data[3] = 'l';
Kemix 0:b4bc4c1ec1e8 78 data[4] = 'l';
Kemix 0:b4bc4c1ec1e8 79 data[5] = 'o';
Kemix 0:b4bc4c1ec1e8 80 data[6] = ' ';
Kemix 0:b4bc4c1ec1e8 81 data[7] = 'W';
Kemix 0:b4bc4c1ec1e8 82 data[8] = 'o';
Kemix 0:b4bc4c1ec1e8 83 data[9] = 'r';
Kemix 0:b4bc4c1ec1e8 84 data[10] = 'l';
Kemix 0:b4bc4c1ec1e8 85 data[11] = 'd';
Kemix 0:b4bc4c1ec1e8 86
Kemix 0:b4bc4c1ec1e8 87 link.write(addr,data,12);
Kemix 0:b4bc4c1ec1e8 88
Kemix 0:b4bc4c1ec1e8 89 while(1){
Kemix 0:b4bc4c1ec1e8 90 if( (Pot>0.2f) & (Pot<=0.4f)){
Kemix 0:b4bc4c1ec1e8 91 R = 0xFF;
Kemix 0:b4bc4c1ec1e8 92 G = 0x00;
Kemix 0:b4bc4c1ec1e8 93 B = 0x00;
Kemix 0:b4bc4c1ec1e8 94 }else if( (Pot>0.4f) & (Pot<=0.6f) ){
Kemix 0:b4bc4c1ec1e8 95 R = 0x00;
Kemix 0:b4bc4c1ec1e8 96 G = 0xFF;
Kemix 0:b4bc4c1ec1e8 97 B= 0x00;
Kemix 0:b4bc4c1ec1e8 98 }else if( (Pot>0.6f) ){
Kemix 0:b4bc4c1ec1e8 99 R = 0x00;
Kemix 0:b4bc4c1ec1e8 100 G = 0x00;
Kemix 0:b4bc4c1ec1e8 101 B = 0xFF;
Kemix 0:b4bc4c1ec1e8 102 }else{
Kemix 0:b4bc4c1ec1e8 103 R = 0x00;
Kemix 0:b4bc4c1ec1e8 104 G = 0x00;
Kemix 0:b4bc4c1ec1e8 105 B = 0x00;
Kemix 0:b4bc4c1ec1e8 106 }
Kemix 0:b4bc4c1ec1e8 107 setup(R,G,B);
Kemix 0:b4bc4c1ec1e8 108 }
Kemix 0:b4bc4c1ec1e8 109 }