Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: lcd neoPixelRing12 view2 BSP_DISCO_F746NG view1 button
NeoPixelRing12/NeoPixelRing12.cpp@7:1887c4e4b5de, 2020-06-04 (annotated)
- Committer:
- Rhamao
- Date:
- Thu Jun 04 23:35:29 2020 +0000
- Revision:
- 7:1887c4e4b5de
Creation de la lib pour controler les LEDs par code RGB
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| Rhamao | 7:1887c4e4b5de | 1 | #include "NeoPixelRing12.h" |
| Rhamao | 7:1887c4e4b5de | 2 | #include "mbed.h" |
| Rhamao | 7:1887c4e4b5de | 3 | #include "string.h" |
| Rhamao | 7:1887c4e4b5de | 4 | |
| Rhamao | 7:1887c4e4b5de | 5 | NeoPixelRing12::NeoPixelRing12(DigitalOut _digitalOutPin):digitalOutPin(_digitalOutPin) |
| Rhamao | 7:1887c4e4b5de | 6 | { |
| Rhamao | 7:1887c4e4b5de | 7 | } |
| Rhamao | 7:1887c4e4b5de | 8 | |
| Rhamao | 7:1887c4e4b5de | 9 | bool NeoPixelRing12::rst( ) |
| Rhamao | 7:1887c4e4b5de | 10 | { |
| Rhamao | 7:1887c4e4b5de | 11 | digitalOutPin=0; |
| Rhamao | 7:1887c4e4b5de | 12 | wait_us(RST_TIME_IN_US); |
| Rhamao | 7:1887c4e4b5de | 13 | return true; |
| Rhamao | 7:1887c4e4b5de | 14 | } |
| Rhamao | 7:1887c4e4b5de | 15 | |
| Rhamao | 7:1887c4e4b5de | 16 | bool NeoPixelRing12::rgbToDataStructure(char* rgbCode){ |
| Rhamao | 7:1887c4e4b5de | 17 | uint8_t i = 0; |
| Rhamao | 7:1887c4e4b5de | 18 | uint8_t offset = 0; |
| Rhamao | 7:1887c4e4b5de | 19 | |
| Rhamao | 7:1887c4e4b5de | 20 | //Red |
| Rhamao | 7:1887c4e4b5de | 21 | for (i=0; i<6; i++) { |
| Rhamao | 7:1887c4e4b5de | 22 | if(i==0) |
| Rhamao | 7:1887c4e4b5de | 23 | offset=11; |
| Rhamao | 7:1887c4e4b5de | 24 | if(i==1) |
| Rhamao | 7:1887c4e4b5de | 25 | offset=15; |
| Rhamao | 7:1887c4e4b5de | 26 | if(i==2) |
| Rhamao | 7:1887c4e4b5de | 27 | offset=3; |
| Rhamao | 7:1887c4e4b5de | 28 | if(i==3) |
| Rhamao | 7:1887c4e4b5de | 29 | offset=7; |
| Rhamao | 7:1887c4e4b5de | 30 | if(i==4) |
| Rhamao | 7:1887c4e4b5de | 31 | offset=19; |
| Rhamao | 7:1887c4e4b5de | 32 | if(i==5) |
| Rhamao | 7:1887c4e4b5de | 33 | offset=23; |
| Rhamao | 7:1887c4e4b5de | 34 | switch (rgbCode[i]) { |
| Rhamao | 7:1887c4e4b5de | 35 | case '0': |
| Rhamao | 7:1887c4e4b5de | 36 | //////////cout << "0000"; |
| Rhamao | 7:1887c4e4b5de | 37 | rgbDataStructure[offset]=false; |
| Rhamao | 7:1887c4e4b5de | 38 | rgbDataStructure[offset-1]=false; |
| Rhamao | 7:1887c4e4b5de | 39 | rgbDataStructure[offset-2]=false; |
| Rhamao | 7:1887c4e4b5de | 40 | rgbDataStructure[offset-3]=false; |
| Rhamao | 7:1887c4e4b5de | 41 | break; |
| Rhamao | 7:1887c4e4b5de | 42 | case '1': |
| Rhamao | 7:1887c4e4b5de | 43 | ////////////////////cout << "0001"; |
| Rhamao | 7:1887c4e4b5de | 44 | rgbDataStructure[offset]=true; |
| Rhamao | 7:1887c4e4b5de | 45 | rgbDataStructure[offset-1]=false; |
| Rhamao | 7:1887c4e4b5de | 46 | rgbDataStructure[offset-2]=false; |
| Rhamao | 7:1887c4e4b5de | 47 | rgbDataStructure[offset-3]=false; |
| Rhamao | 7:1887c4e4b5de | 48 | break; |
| Rhamao | 7:1887c4e4b5de | 49 | case '2': |
| Rhamao | 7:1887c4e4b5de | 50 | ////////cout << "0010"; |
| Rhamao | 7:1887c4e4b5de | 51 | rgbDataStructure[offset]=false; |
| Rhamao | 7:1887c4e4b5de | 52 | rgbDataStructure[offset-1]=true; |
| Rhamao | 7:1887c4e4b5de | 53 | rgbDataStructure[offset-2]=false; |
| Rhamao | 7:1887c4e4b5de | 54 | rgbDataStructure[offset-3]=false; |
| Rhamao | 7:1887c4e4b5de | 55 | break; |
| Rhamao | 7:1887c4e4b5de | 56 | case '3': |
| Rhamao | 7:1887c4e4b5de | 57 | ////////cout << "0011"; |
| Rhamao | 7:1887c4e4b5de | 58 | rgbDataStructure[offset]=true; |
| Rhamao | 7:1887c4e4b5de | 59 | rgbDataStructure[offset-1]=true; |
| Rhamao | 7:1887c4e4b5de | 60 | rgbDataStructure[offset-2]=false; |
| Rhamao | 7:1887c4e4b5de | 61 | rgbDataStructure[offset-3]=false; |
| Rhamao | 7:1887c4e4b5de | 62 | break; |
| Rhamao | 7:1887c4e4b5de | 63 | case '4': |
| Rhamao | 7:1887c4e4b5de | 64 | ////////cout << "0100"; |
| Rhamao | 7:1887c4e4b5de | 65 | rgbDataStructure[offset]=false; |
| Rhamao | 7:1887c4e4b5de | 66 | rgbDataStructure[offset-1]=false; |
| Rhamao | 7:1887c4e4b5de | 67 | rgbDataStructure[offset-2]=true; |
| Rhamao | 7:1887c4e4b5de | 68 | rgbDataStructure[offset-3]=false; |
| Rhamao | 7:1887c4e4b5de | 69 | break; |
| Rhamao | 7:1887c4e4b5de | 70 | case '5': |
| Rhamao | 7:1887c4e4b5de | 71 | ////////cout << "0101"; |
| Rhamao | 7:1887c4e4b5de | 72 | rgbDataStructure[offset]=true; |
| Rhamao | 7:1887c4e4b5de | 73 | rgbDataStructure[offset-1]=false; |
| Rhamao | 7:1887c4e4b5de | 74 | rgbDataStructure[offset-2]=true; |
| Rhamao | 7:1887c4e4b5de | 75 | rgbDataStructure[offset-3]=false; |
| Rhamao | 7:1887c4e4b5de | 76 | break; |
| Rhamao | 7:1887c4e4b5de | 77 | case '6': |
| Rhamao | 7:1887c4e4b5de | 78 | ////////cout << "0110"; |
| Rhamao | 7:1887c4e4b5de | 79 | rgbDataStructure[offset]=false; |
| Rhamao | 7:1887c4e4b5de | 80 | rgbDataStructure[offset-1]=true; |
| Rhamao | 7:1887c4e4b5de | 81 | rgbDataStructure[offset-2]=true; |
| Rhamao | 7:1887c4e4b5de | 82 | rgbDataStructure[offset-3]=false; |
| Rhamao | 7:1887c4e4b5de | 83 | break; |
| Rhamao | 7:1887c4e4b5de | 84 | case '7': |
| Rhamao | 7:1887c4e4b5de | 85 | ////////cout << "0111"; |
| Rhamao | 7:1887c4e4b5de | 86 | rgbDataStructure[offset]=true; |
| Rhamao | 7:1887c4e4b5de | 87 | rgbDataStructure[offset-1]=true; |
| Rhamao | 7:1887c4e4b5de | 88 | rgbDataStructure[offset-2]=true; |
| Rhamao | 7:1887c4e4b5de | 89 | rgbDataStructure[offset-3]=false; |
| Rhamao | 7:1887c4e4b5de | 90 | break; |
| Rhamao | 7:1887c4e4b5de | 91 | case '8': |
| Rhamao | 7:1887c4e4b5de | 92 | ////////cout << "1000"; |
| Rhamao | 7:1887c4e4b5de | 93 | rgbDataStructure[offset]=false; |
| Rhamao | 7:1887c4e4b5de | 94 | rgbDataStructure[offset-1]=false; |
| Rhamao | 7:1887c4e4b5de | 95 | rgbDataStructure[offset-2]=false; |
| Rhamao | 7:1887c4e4b5de | 96 | rgbDataStructure[offset-3]=true; |
| Rhamao | 7:1887c4e4b5de | 97 | break; |
| Rhamao | 7:1887c4e4b5de | 98 | case '9': |
| Rhamao | 7:1887c4e4b5de | 99 | ////////cout << "1001"; |
| Rhamao | 7:1887c4e4b5de | 100 | rgbDataStructure[offset]=true; |
| Rhamao | 7:1887c4e4b5de | 101 | rgbDataStructure[offset-1]=false; |
| Rhamao | 7:1887c4e4b5de | 102 | rgbDataStructure[offset-2]=false; |
| Rhamao | 7:1887c4e4b5de | 103 | rgbDataStructure[offset-3]=true; |
| Rhamao | 7:1887c4e4b5de | 104 | break; |
| Rhamao | 7:1887c4e4b5de | 105 | case 'A': |
| Rhamao | 7:1887c4e4b5de | 106 | case 'a': |
| Rhamao | 7:1887c4e4b5de | 107 | ////////cout << "1010"; |
| Rhamao | 7:1887c4e4b5de | 108 | rgbDataStructure[offset]=false; |
| Rhamao | 7:1887c4e4b5de | 109 | rgbDataStructure[offset-1]=true; |
| Rhamao | 7:1887c4e4b5de | 110 | rgbDataStructure[offset-2]=false; |
| Rhamao | 7:1887c4e4b5de | 111 | rgbDataStructure[offset-3]=true; |
| Rhamao | 7:1887c4e4b5de | 112 | break; |
| Rhamao | 7:1887c4e4b5de | 113 | case 'B': |
| Rhamao | 7:1887c4e4b5de | 114 | case 'b': |
| Rhamao | 7:1887c4e4b5de | 115 | ////////cout << "1011"; |
| Rhamao | 7:1887c4e4b5de | 116 | rgbDataStructure[offset]=true; |
| Rhamao | 7:1887c4e4b5de | 117 | rgbDataStructure[offset-1]=true; |
| Rhamao | 7:1887c4e4b5de | 118 | rgbDataStructure[offset-2]=false; |
| Rhamao | 7:1887c4e4b5de | 119 | rgbDataStructure[offset-3]=true; |
| Rhamao | 7:1887c4e4b5de | 120 | break; |
| Rhamao | 7:1887c4e4b5de | 121 | case 'C': |
| Rhamao | 7:1887c4e4b5de | 122 | case 'c': |
| Rhamao | 7:1887c4e4b5de | 123 | ////////cout << "1100"; |
| Rhamao | 7:1887c4e4b5de | 124 | rgbDataStructure[offset]=false; |
| Rhamao | 7:1887c4e4b5de | 125 | rgbDataStructure[offset-1]=false; |
| Rhamao | 7:1887c4e4b5de | 126 | rgbDataStructure[offset-2]=true; |
| Rhamao | 7:1887c4e4b5de | 127 | rgbDataStructure[offset-3]=true; |
| Rhamao | 7:1887c4e4b5de | 128 | break; |
| Rhamao | 7:1887c4e4b5de | 129 | case 'D': |
| Rhamao | 7:1887c4e4b5de | 130 | case 'd': |
| Rhamao | 7:1887c4e4b5de | 131 | ////////cout << "1101"; |
| Rhamao | 7:1887c4e4b5de | 132 | rgbDataStructure[offset]=true; |
| Rhamao | 7:1887c4e4b5de | 133 | rgbDataStructure[offset-1]=false; |
| Rhamao | 7:1887c4e4b5de | 134 | rgbDataStructure[offset-2]=true; |
| Rhamao | 7:1887c4e4b5de | 135 | rgbDataStructure[offset-3]=true; |
| Rhamao | 7:1887c4e4b5de | 136 | break; |
| Rhamao | 7:1887c4e4b5de | 137 | case 'E': |
| Rhamao | 7:1887c4e4b5de | 138 | case 'e': |
| Rhamao | 7:1887c4e4b5de | 139 | ////////cout << "1110"; |
| Rhamao | 7:1887c4e4b5de | 140 | rgbDataStructure[offset]=false; |
| Rhamao | 7:1887c4e4b5de | 141 | rgbDataStructure[offset-1]=true; |
| Rhamao | 7:1887c4e4b5de | 142 | rgbDataStructure[offset-2]=true; |
| Rhamao | 7:1887c4e4b5de | 143 | rgbDataStructure[offset-3]=true; |
| Rhamao | 7:1887c4e4b5de | 144 | break; |
| Rhamao | 7:1887c4e4b5de | 145 | case 'F': |
| Rhamao | 7:1887c4e4b5de | 146 | case 'f': |
| Rhamao | 7:1887c4e4b5de | 147 | ////////cout << "1111"; |
| Rhamao | 7:1887c4e4b5de | 148 | rgbDataStructure[offset]=true; |
| Rhamao | 7:1887c4e4b5de | 149 | rgbDataStructure[offset-1]=true; |
| Rhamao | 7:1887c4e4b5de | 150 | rgbDataStructure[offset-2]=true; |
| Rhamao | 7:1887c4e4b5de | 151 | rgbDataStructure[offset-3]=true; |
| Rhamao | 7:1887c4e4b5de | 152 | break; |
| Rhamao | 7:1887c4e4b5de | 153 | default: |
| Rhamao | 7:1887c4e4b5de | 154 | return false; |
| Rhamao | 7:1887c4e4b5de | 155 | } |
| Rhamao | 7:1887c4e4b5de | 156 | } |
| Rhamao | 7:1887c4e4b5de | 157 | return true; |
| Rhamao | 7:1887c4e4b5de | 158 | } |
| Rhamao | 7:1887c4e4b5de | 159 | |
| Rhamao | 7:1887c4e4b5de | 160 | bool NeoPixelRing12::bit(bool value){ |
| Rhamao | 7:1887c4e4b5de | 161 | if(!value){ |
| Rhamao | 7:1887c4e4b5de | 162 | digitalOutPin = 1; |
| Rhamao | 7:1887c4e4b5de | 163 | wait_ns(190); |
| Rhamao | 7:1887c4e4b5de | 164 | digitalOutPin = 0; |
| Rhamao | 7:1887c4e4b5de | 165 | wait_ns(740); |
| Rhamao | 7:1887c4e4b5de | 166 | } |
| Rhamao | 7:1887c4e4b5de | 167 | else{ |
| Rhamao | 7:1887c4e4b5de | 168 | digitalOutPin = 1; |
| Rhamao | 7:1887c4e4b5de | 169 | wait_ns(600); |
| Rhamao | 7:1887c4e4b5de | 170 | digitalOutPin = 0; |
| Rhamao | 7:1887c4e4b5de | 171 | wait_ns(600); |
| Rhamao | 7:1887c4e4b5de | 172 | } |
| Rhamao | 7:1887c4e4b5de | 173 | return true; |
| Rhamao | 7:1887c4e4b5de | 174 | } |
| Rhamao | 7:1887c4e4b5de | 175 | |
| Rhamao | 7:1887c4e4b5de | 176 | bool NeoPixelRing12::setLights(int nbOfLeds, char* rgbCode){ |
| Rhamao | 7:1887c4e4b5de | 177 | rgbToDataStructure(rgbCode); |
| Rhamao | 7:1887c4e4b5de | 178 | for(int i=0; i<nbOfLeds; i++){ |
| Rhamao | 7:1887c4e4b5de | 179 | for(int y=0; y<24; y++){ |
| Rhamao | 7:1887c4e4b5de | 180 | bit(rgbDataStructure[y]); |
| Rhamao | 7:1887c4e4b5de | 181 | } |
| Rhamao | 7:1887c4e4b5de | 182 | } |
| Rhamao | 7:1887c4e4b5de | 183 | return true; |
| Rhamao | 7:1887c4e4b5de | 184 | } |
| Rhamao | 7:1887c4e4b5de | 185 | |
| Rhamao | 7:1887c4e4b5de | 186 |