diff --git a/flipcontrol_esp32/include/flipdot.h b/flipcontrol_esp32/include/flipdot.h index c3c6036..244185b 100644 --- a/flipcontrol_esp32/include/flipdot.h +++ b/flipcontrol_esp32/include/flipdot.h @@ -35,11 +35,20 @@ D3 - _clear //### Timings ### +/* These values worked before okay: #define MICROS_DRIVEDOTSET 1500 //time dot will be powered for flipping to bright side. in microseconds. 700 sometimes flips too late -#define MICROS_DRIVEDOTCLEAR 20000 //time dot will be powered for flipping to black. in microseconds. always flips at least a whole column. 10000 is too short +#define MICROS_DRIVEDOTCLEAR 30000 //time dot will be powered for flipping to black. in microseconds. always flips at least a whole column. 10000 is too short. last value was 20000 #define MICROS_SHIFTDELAY 50/2 //shift register clock (100/2 = 1/(100/1000000) Hz) .at 25/2 nothing is flipping! #define MICROS_SHIFT_LATCH 100 //latch high time for 595 (row drivers) +*/ + +//Slower values +#define MICROS_DRIVEDOTSET 5000 //time dot will be powered for flipping to bright side. in microseconds. 700 sometimes flips too late +#define MICROS_DRIVEDOTCLEAR 30000 //time dot will be powered for flipping to black. in microseconds. always flips at least a whole column. 10000 is too short. last value was 20000 + +#define MICROS_SHIFTDELAY 100/2 //shift register clock (100/2 = 1/(100/1000000) Hz) .at 25/2 nothing is flipping! +#define MICROS_SHIFT_LATCH 200 //latch high time for 595 (row drivers) class Flipdot { diff --git a/flipcontrol_esp32/include/image.h b/flipcontrol_esp32/include/image.h index f0fc1ed..0dd37b7 100644 --- a/flipcontrol_esp32/include/image.h +++ b/flipcontrol_esp32/include/image.h @@ -59,6 +59,11 @@ public: void setBufferColumn(uint8_t _colnum, uint16_t _rowdata); void setBuffer_random(uint8_t randomness); + void setBuffer_Image1(); + void setBuffer_Image2(); + void setBuffer_Image3(); + void setBuffer_Image4(); + void loop_testDots(); void loop_drawClearTest(); diff --git a/flipcontrol_esp32/src/image.cpp b/flipcontrol_esp32/src/image.cpp index e14ce8e..68a475e 100644 --- a/flipcontrol_esp32/src/image.cpp +++ b/flipcontrol_esp32/src/image.cpp @@ -46,6 +46,336 @@ void Image::setBuffer_solid(bool set) flag_updating=true; //make update run } + +void Image::setBuffer_Image1() +{ +backBuffer[0]=0b0101010101010101; +backBuffer[1]=0b1010101010101010; +backBuffer[2]=0b0101010101010101; +backBuffer[3]=0b1010101010101010; +backBuffer[4]=0b0101010101010101; +backBuffer[5]=0b1010101010101010; +backBuffer[6]=0b0101010101010101; +backBuffer[7]=0b1010101010101010; +backBuffer[8]=0b0101010101010101; +backBuffer[9]=0b1010101010101010; +backBuffer[10]=0b0101010101010101; +backBuffer[11]=0b1010101010101010; +backBuffer[12]=0b0101010101010101; +backBuffer[13]=0b1010101010101010; +backBuffer[14]=0b0101010101010101; +backBuffer[15]=0b1010101010101010; +backBuffer[16]=0b0101010101010101; +backBuffer[17]=0b1010101010101010; +backBuffer[18]=0b0101010101010101; +backBuffer[19]=0b1010101010101010; +backBuffer[20]=0b0101010101010101; +backBuffer[21]=0b1010101010101010; +backBuffer[22]=0b0101010101010101; +backBuffer[23]=0b1010101010101010; +backBuffer[24]=0b0101010101010101; +backBuffer[25]=0b1010101010101010; +backBuffer[26]=0b0101010101010101; +backBuffer[27]=0b1010101010101010; +backBuffer[28]=0b0101010101010101; +backBuffer[29]=0b1010101010101010; +backBuffer[30]=0b0101010101010101; +backBuffer[31]=0b1010101010101010; +backBuffer[32]=0b0101010101010101; +backBuffer[33]=0b1010101010101010; +backBuffer[34]=0b0101010101010101; +backBuffer[35]=0b1010101010101010; +backBuffer[36]=0b0101010101010101; +backBuffer[37]=0b1010101010101010; +backBuffer[38]=0b0101010101010101; +backBuffer[39]=0b1010101010101010; +backBuffer[40]=0b0101010101010101; +backBuffer[41]=0b1010101010101010; +backBuffer[42]=0b0101010101010101; +backBuffer[43]=0b1010101010101010; +backBuffer[44]=0b0101010101010101; +backBuffer[45]=0b1010101010101010; +backBuffer[46]=0b0101010101010101; +backBuffer[47]=0b1010101010101010; +backBuffer[48]=0b0101010101010101; +backBuffer[49]=0b1010101010101010; +backBuffer[50]=0b0101010101010101; +backBuffer[51]=0b1010101010101010; +backBuffer[52]=0b0101010101010101; +backBuffer[53]=0b1010101010101010; +backBuffer[54]=0b0101010101010101; +backBuffer[55]=0b1010101010101010; +backBuffer[56]=0b0101010101010101; +backBuffer[57]=0b1010101010101010; +backBuffer[58]=0b0101010101010101; +backBuffer[59]=0b1010101010101010; +backBuffer[60]=0b0101010101010101; +backBuffer[61]=0b1010101010101010; +backBuffer[62]=0b0101010101010101; +backBuffer[63]=0b1010101010101010; +backBuffer[64]=0b0101010101010101; +backBuffer[65]=0b1010101010101010; +backBuffer[66]=0b0101010101010101; +backBuffer[67]=0b1010101010101010; +backBuffer[68]=0b0101010101010101; +backBuffer[69]=0b1010101010101010; +backBuffer[70]=0b0101010101010101; +backBuffer[71]=0b1010101010101010; +backBuffer[72]=0b0101010101010101; +backBuffer[73]=0b1010101010101010; +backBuffer[74]=0b0101010101010101; + + flag_updating=true; //make update run +} + +void Image::setBuffer_Image2() +{ +backBuffer[0]=0b1010101010101010; +backBuffer[1]=0b0101010101010101; +backBuffer[2]=0b1010101010101010; +backBuffer[3]=0b0101010101010101; +backBuffer[4]=0b1010101010101010; +backBuffer[5]=0b0101010101010101; +backBuffer[6]=0b1010101010101010; +backBuffer[7]=0b0101010101010101; +backBuffer[8]=0b1010101010101010; +backBuffer[9]=0b0101010101010101; +backBuffer[10]=0b1010101010101010; +backBuffer[11]=0b0101010101010101; +backBuffer[12]=0b1010101010101010; +backBuffer[13]=0b0101010101010101; +backBuffer[14]=0b1010101010101010; +backBuffer[15]=0b0101010101010101; +backBuffer[16]=0b1010101010101010; +backBuffer[17]=0b0101010101010101; +backBuffer[18]=0b1010101010101010; +backBuffer[19]=0b0101010101010101; +backBuffer[20]=0b1010101010101010; +backBuffer[21]=0b0101010101010101; +backBuffer[22]=0b1010101010101010; +backBuffer[23]=0b0101010101010101; +backBuffer[24]=0b1010101010101010; +backBuffer[25]=0b0101010101010101; +backBuffer[26]=0b1010101010101010; +backBuffer[27]=0b0101010101010101; +backBuffer[28]=0b1010101010101010; +backBuffer[29]=0b0101010101010101; +backBuffer[30]=0b1010101010101010; +backBuffer[31]=0b0101010101010101; +backBuffer[32]=0b1010101010101010; +backBuffer[33]=0b0101010101010101; +backBuffer[34]=0b1010101010101010; +backBuffer[35]=0b0101010101010101; +backBuffer[36]=0b1010101010101010; +backBuffer[37]=0b0101010101010101; +backBuffer[38]=0b1010101010101010; +backBuffer[39]=0b0101010101010101; +backBuffer[40]=0b1010101010101010; +backBuffer[41]=0b0101010101010101; +backBuffer[42]=0b1010101010101010; +backBuffer[43]=0b0101010101010101; +backBuffer[44]=0b1010101010101010; +backBuffer[45]=0b0101010101010101; +backBuffer[46]=0b1010101010101010; +backBuffer[47]=0b0101010101010101; +backBuffer[48]=0b1010101010101010; +backBuffer[49]=0b0101010101010101; +backBuffer[50]=0b1010101010101010; +backBuffer[51]=0b0101010101010101; +backBuffer[52]=0b1010101010101010; +backBuffer[53]=0b0101010101010101; +backBuffer[54]=0b1010101010101010; +backBuffer[55]=0b0101010101010101; +backBuffer[56]=0b1010101010101010; +backBuffer[57]=0b0101010101010101; +backBuffer[58]=0b1010101010101010; +backBuffer[59]=0b0101010101010101; +backBuffer[60]=0b1010101010101010; +backBuffer[61]=0b0101010101010101; +backBuffer[62]=0b1010101010101010; +backBuffer[63]=0b0101010101010101; +backBuffer[64]=0b1010101010101010; +backBuffer[65]=0b0101010101010101; +backBuffer[66]=0b1010101010101010; +backBuffer[67]=0b0101010101010101; +backBuffer[68]=0b1010101010101010; +backBuffer[69]=0b0101010101010101; +backBuffer[70]=0b1010101010101010; +backBuffer[71]=0b0101010101010101; +backBuffer[72]=0b1010101010101010; +backBuffer[73]=0b0101010101010101; +backBuffer[74]=0b1010101010101010; + +flag_updating=true; //make update run +} + + +void Image::setBuffer_Image3() +{ + backBuffer[0]=0b1010101010101010; +backBuffer[1]=0b1010101010101010; +backBuffer[2]=0b1010101010101010; +backBuffer[3]=0b1010101010101010; +backBuffer[4]=0b1010101010101010; +backBuffer[5]=0b1010101010101010; +backBuffer[6]=0b1010101010101010; +backBuffer[7]=0b1010101010101010; +backBuffer[8]=0b1010101010101010; +backBuffer[9]=0b1010101010101010; +backBuffer[10]=0b1010101010101010; +backBuffer[11]=0b1010101010101010; +backBuffer[12]=0b1010101010101010; +backBuffer[13]=0b1010101010101010; +backBuffer[14]=0b1010101010101010; +backBuffer[15]=0b1010101010101010; +backBuffer[16]=0b1010101010101010; +backBuffer[17]=0b1010101010101010; +backBuffer[18]=0b1010101010101010; +backBuffer[19]=0b1010101010101010; +backBuffer[20]=0b1010101010101010; +backBuffer[21]=0b1010101010101010; +backBuffer[22]=0b1010101010101010; +backBuffer[23]=0b1010101010101010; +backBuffer[24]=0b1010101010101010; +backBuffer[25]=0b1010101010101010; +backBuffer[26]=0b1010101010101010; +backBuffer[27]=0b1010101010101010; +backBuffer[28]=0b1010101010101010; +backBuffer[29]=0b1010101010101010; +backBuffer[30]=0b1010101010101010; +backBuffer[31]=0b1010101010101010; +backBuffer[32]=0b1010101010101010; +backBuffer[33]=0b1010101010101010; +backBuffer[34]=0b1010101010101010; +backBuffer[35]=0b1010101010101010; +backBuffer[36]=0b1010101010101010; +backBuffer[37]=0b1010101010101010; +backBuffer[38]=0b1010101010101010; +backBuffer[39]=0b1010101010101010; +backBuffer[40]=0b1010101010101010; +backBuffer[41]=0b1010101010101010; +backBuffer[42]=0b1010101010101010; +backBuffer[43]=0b1010101010101010; +backBuffer[44]=0b1010101010101010; +backBuffer[45]=0b1010101010101010; +backBuffer[46]=0b1010101010101010; +backBuffer[47]=0b1010101010101010; +backBuffer[48]=0b1010101010101010; +backBuffer[49]=0b1010101010101010; +backBuffer[50]=0b1010101010101010; +backBuffer[51]=0b1010101010101010; +backBuffer[52]=0b1010101010101010; +backBuffer[53]=0b1010101010101010; +backBuffer[54]=0b1010101010101010; +backBuffer[55]=0b1010101010101010; +backBuffer[56]=0b1010101010101010; +backBuffer[57]=0b1010101010101010; +backBuffer[58]=0b1010101010101010; +backBuffer[59]=0b1010101010101010; +backBuffer[60]=0b1010101010101010; +backBuffer[61]=0b1010101010101010; +backBuffer[62]=0b1010101010101010; +backBuffer[63]=0b1010101010101010; +backBuffer[64]=0b1010101010101010; +backBuffer[65]=0b1010101010101010; +backBuffer[66]=0b1010101010101010; +backBuffer[67]=0b1010101010101010; +backBuffer[68]=0b1010101010101010; +backBuffer[69]=0b1010101010101010; +backBuffer[70]=0b1010101010101010; +backBuffer[71]=0b1010101010101010; +backBuffer[72]=0b1010101010101010; +backBuffer[73]=0b1010101010101010; +backBuffer[74]=0b1010101010101010; + + + flag_updating=true; //make update run +} + + + +void Image::setBuffer_Image4() +{ + backBuffer[0]=0b0101010101010101; +backBuffer[1]=0b0101010101010101; +backBuffer[2]=0b0101010101010101; +backBuffer[3]=0b0101010101010101; +backBuffer[4]=0b0101010101010101; +backBuffer[5]=0b0101010101010101; +backBuffer[6]=0b0101010101010101; +backBuffer[7]=0b0101010101010101; +backBuffer[8]=0b0101010101010101; +backBuffer[9]=0b0101010101010101; +backBuffer[10]=0b0101010101010101; +backBuffer[11]=0b0101010101010101; +backBuffer[12]=0b0101010101010101; +backBuffer[13]=0b0101010101010101; +backBuffer[14]=0b0101010101010101; +backBuffer[15]=0b0101010101010101; +backBuffer[16]=0b0101010101010101; +backBuffer[17]=0b0101010101010101; +backBuffer[18]=0b0101010101010101; +backBuffer[19]=0b0101010101010101; +backBuffer[20]=0b0101010101010101; +backBuffer[21]=0b0101010101010101; +backBuffer[22]=0b0101010101010101; +backBuffer[23]=0b0101010101010101; +backBuffer[24]=0b0101010101010101; +backBuffer[25]=0b0101010101010101; +backBuffer[26]=0b0101010101010101; +backBuffer[27]=0b0101010101010101; +backBuffer[28]=0b0101010101010101; +backBuffer[29]=0b0101010101010101; +backBuffer[30]=0b0101010101010101; +backBuffer[31]=0b0101010101010101; +backBuffer[32]=0b0101010101010101; +backBuffer[33]=0b0101010101010101; +backBuffer[34]=0b0101010101010101; +backBuffer[35]=0b0101010101010101; +backBuffer[36]=0b0101010101010101; +backBuffer[37]=0b0101010101010101; +backBuffer[38]=0b0101010101010101; +backBuffer[39]=0b0101010101010101; +backBuffer[40]=0b0101010101010101; +backBuffer[41]=0b0101010101010101; +backBuffer[42]=0b0101010101010101; +backBuffer[43]=0b0101010101010101; +backBuffer[44]=0b0101010101010101; +backBuffer[45]=0b0101010101010101; +backBuffer[46]=0b0101010101010101; +backBuffer[47]=0b0101010101010101; +backBuffer[48]=0b0101010101010101; +backBuffer[49]=0b0101010101010101; +backBuffer[50]=0b0101010101010101; +backBuffer[51]=0b0101010101010101; +backBuffer[52]=0b0101010101010101; +backBuffer[53]=0b0101010101010101; +backBuffer[54]=0b0101010101010101; +backBuffer[55]=0b0101010101010101; +backBuffer[56]=0b0101010101010101; +backBuffer[57]=0b0101010101010101; +backBuffer[58]=0b0101010101010101; +backBuffer[59]=0b0101010101010101; +backBuffer[60]=0b0101010101010101; +backBuffer[61]=0b0101010101010101; +backBuffer[62]=0b0101010101010101; +backBuffer[63]=0b0101010101010101; +backBuffer[64]=0b0101010101010101; +backBuffer[65]=0b0101010101010101; +backBuffer[66]=0b0101010101010101; +backBuffer[67]=0b0101010101010101; +backBuffer[68]=0b0101010101010101; +backBuffer[69]=0b0101010101010101; +backBuffer[70]=0b0101010101010101; +backBuffer[71]=0b0101010101010101; +backBuffer[72]=0b0101010101010101; +backBuffer[73]=0b0101010101010101; +backBuffer[74]=0b0101010101010101; + + flag_updating=true; //make update run +} + + void Image::setBufferColumn(uint8_t _colnum, uint16_t _rowdata) { if (_colnum>=COLUMNS) { diff --git a/flipcontrol_esp32/src/main.cpp b/flipcontrol_esp32/src/main.cpp index a3230cb..e15921d 100644 --- a/flipcontrol_esp32/src/main.cpp +++ b/flipcontrol_esp32/src/main.cpp @@ -19,6 +19,8 @@ void setup() { flip.init(); Serial.begin(115200); + flip.setBuffer_solid(0); + } @@ -27,11 +29,39 @@ void loop() { static unsigned long last_change=0; static bool color=0; - if (loopmillis-last_change >= 1000) + + static uint8_t image=0; + if (loopmillis-last_change >= 1000*10) { - //Serial.print("Change to Solid color ="); Serial.println(color); - //flip.setBuffer_solid(color); - //color=1-color; + /* + Serial.print("Change to Solid color ="); Serial.println(color); + + flip.setBuffer_solid(color); + color=1-color; + + */ + + + switch (image){ + case 0: + flip.setBuffer_Image1(); + break; + case 1: + flip.setBuffer_Image2(); + break; + case 2: + flip.setBuffer_Image3(); + break; + case 3: + flip.setBuffer_Image4(); + break; + + } + + image++; + image%=4; + + /* uint8_t _randomvalue=random(128); @@ -39,12 +69,13 @@ void loop() { Serial.println(_randomvalue); flip.setBuffer_random(_randomvalue); */ - + /* for (uint8_t _x=0;_x