projets:fuz:ac_giant_led_matrix
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
projets:fuz:ac_giant_led_matrix [2019-02-15 22:42] – created barzi | projets:fuz:ac_giant_led_matrix [2023-02-02 22:06] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== | + | ====== |
<WRAP round box 60%> | <WRAP round box 60%> | ||
Line 7: | Line 7: | ||
===== Ressources ===== | ===== Ressources ===== | ||
- | * collab [[user: | + | * collab [[user: |
- | * | + | * [[https:// |
===== Ressources ===== | ===== Ressources ===== | ||
- | * ... | + | * [[https:// |
+ | * [[https:// | ||
+ | |||
+ | ===== Dev log ===== | ||
+ | |||
+ | ==== session 22 fev 2019 ==== | ||
+ | {{: | ||
+ | {{: | ||
+ | {{: | ||
+ | {{: | ||
+ | |||
+ | ===== Code ===== | ||
+ | |||
+ | ++++ Code arduino 240V lettres 2 colonnes | | ||
+ | <code c> | ||
+ | |||
+ | #include < | ||
+ | #define DEBUG false | ||
+ | |||
+ | #define COL_NB 2 | ||
+ | #define LIN_NB 7 | ||
+ | |||
+ | int pin_col[COL_NB] = {3, 2}; | ||
+ | int pin_lin[LIN_NB] = {4, 5, 6, 7, 8, 9, 10}; | ||
+ | |||
+ | int seg[2][7] = { {0, 1, 0, 1, 0, 0, 0},{1, 0, 1, 0, 1, 0, 0} }; | ||
+ | |||
+ | //AC | ||
+ | # | ||
+ | int last_AC_detect = LOW; | ||
+ | |||
+ | void setup() { | ||
+ | //AC | ||
+ | pinMode2(pinACsense, | ||
+ | pinMode2(LED_BUILTIN, | ||
+ | |||
+ | for (int i = 0; i < COL_NB; i++) { | ||
+ | pinMode2(pin_col[i], | ||
+ | } | ||
+ | |||
+ | for (int i = 0; i < LIN_NB; i++) { | ||
+ | pinMode2(pin_lin[i], | ||
+ | } | ||
+ | |||
+ | if (DEBUG) Serial.begin(115200); | ||
+ | if (DEBUG) Serial.println(" | ||
+ | } | ||
+ | |||
+ | |||
+ | int letter[7]; | ||
+ | |||
+ | void loop() { | ||
+ | //int digitNb = ((long)millis / 1000) % 2; | ||
+ | |||
+ | // COLONNES < 2 | ||
+ | for (int j = 0; j < 2; j++) { | ||
+ | |||
+ | // copy current letter | ||
+ | /* | ||
+ | for (int k = 0; k < 7; k++) { | ||
+ | letter[k] = seg[j][k]; | ||
+ | if (DEBUG) Serial.print(letter[k]); | ||
+ | if (DEBUG) Serial.print(" | ||
+ | } | ||
+ | if (DEBUG) Serial.println("" | ||
+ | */ | ||
+ | //////////////////// | ||
+ | |||
+ | // allume une colonne | ||
+ | int b = pin_col[j]; | ||
+ | digitalWrite2(b, | ||
+ | |||
+ | |||
+ | // LIGNES < 7 | ||
+ | for (int i = 0; i < 7; i++) { | ||
+ | |||
+ | int a = pin_lin[i]; | ||
+ | |||
+ | //if (letter[i] == 1) { | ||
+ | if (seg[j][i] == 1) { | ||
+ | digitalWrite2(a, | ||
+ | if (DEBUG) Serial.print(" | ||
+ | } | ||
+ | else { | ||
+ | digitalWrite2(a, | ||
+ | if (DEBUG) Serial.print(" | ||
+ | } | ||
+ | if (DEBUG) Serial.println("" | ||
+ | |||
+ | } // end lines | ||
+ | |||
+ | |||
+ | // persistence retinienne (env 40ms) | ||
+ | |||
+ | delayMicroseconds(9000); | ||
+ | |||
+ | // Wait for AC sync... | ||
+ | int AC_detect = LOW; | ||
+ | while ( AC_detect != HIGH) { | ||
+ | AC_detect = digitalRead2(pinACsense); | ||
+ | } | ||
+ | |||
+ | |||
+ | // cols down | ||
+ | digitalWrite2(b, | ||
+ | |||
+ | // lines down | ||
+ | for (int t = 0; t < 7; t++) { | ||
+ | int z = pin_lin[t]; | ||
+ | digitalWrite2(z, | ||
+ | } | ||
+ | |||
+ | } // end cols | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | ++++ | ||
+ | |||
+ | ++++ Code arduino 240V led matrix test simple | ||
+ | <code c> | ||
+ | #define COL_NB 2 | ||
+ | #define LIN_NB 7 | ||
+ | |||
+ | int pin_col[COL_NB] = {2, 3}; | ||
+ | int pin_lin[LIN_NB] = {4, 5, 6, 7, 8, 9, 10}; | ||
+ | |||
+ | |||
+ | |||
+ | void setup() { | ||
+ | for (int i = 0; i < COL_NB; i++) { | ||
+ | pinMode(pin_col[i], | ||
+ | } | ||
+ | |||
+ | for (int i = 0; i < LIN_NB; i++) { | ||
+ | pinMode(pin_lin[i], | ||
+ | } | ||
+ | |||
+ | Serial.begin(114200); | ||
+ | Serial.println(" | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | |||
+ | for (int i = 0; i < 2; i++) { | ||
+ | int a = random(2) + 2; | ||
+ | //int a=pin_col[i]; | ||
+ | |||
+ | digitalWrite(a, | ||
+ | Serial.print(" | ||
+ | Serial.println(a); | ||
+ | |||
+ | for (int j = 0; j < LIN_NB; j++) { | ||
+ | int b = random(7) + 4; | ||
+ | //int a=pin_lin[j]; | ||
+ | |||
+ | digitalWrite(b, | ||
+ | Serial.print(" | ||
+ | Serial.println(pin_lin[j]); | ||
+ | delay(50); | ||
+ | |||
+ | random(5)==0? | ||
+ | } | ||
+ | |||
+ | digitalWrite(a, | ||
+ | |||
+ | /* | ||
+ | for (int j = 0; j < LIN_NB; j++) { | ||
+ | // | ||
+ | Serial.print(" | ||
+ | Serial.println(pin_lin[j]); | ||
+ | delay(10); | ||
+ | digitalWrite(pin_lin[j], | ||
+ | } | ||
+ | |||
+ | digitalWrite(pin_col[i], | ||
+ | */ | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | ++++ | ||
+ | |||
+ | ++++ Code arduino 240V led matrix with AC sensing and FastIO | | ||
+ | <code c> | ||
+ | #include < | ||
+ | |||
+ | |||
+ | #define COL_NB 2 | ||
+ | #define LIN_NB 7 | ||
+ | |||
+ | int pin_col[COL_NB] = {2, 3}; | ||
+ | int pin_lin[LIN_NB] = {4, 5, 6, 7, 8, 9, 10}; | ||
+ | |||
+ | //AC | ||
+ | # | ||
+ | int last_AC_detect = LOW; | ||
+ | |||
+ | void setup() { | ||
+ | //AC | ||
+ | pinMode2(pinACsense, | ||
+ | pinMode2(LED_BUILTIN, | ||
+ | |||
+ | for (int i = 0; i < COL_NB; i++) { | ||
+ | pinMode2(pin_col[i], | ||
+ | } | ||
+ | |||
+ | for (int i = 0; i < LIN_NB; i++) { | ||
+ | pinMode2(pin_lin[i], | ||
+ | } | ||
+ | |||
+ | // | ||
+ | // | ||
+ | } | ||
+ | |||
+ | int intensity_time = 0; | ||
+ | int step = 40; | ||
+ | // bool back_from_last_scan = false; | ||
+ | |||
+ | void loop() { | ||
+ | |||
+ | // LIGNES < 7 | ||
+ | for (int i = 0; i < 4; i++) { | ||
+ | |||
+ | /* | ||
+ | int AC_detect = LOW; | ||
+ | // Wait for AC sync... | ||
+ | while ( AC_detect != HIGH || back_from_last_scan) { | ||
+ | AC_detect = digitalRead(pinACsense); | ||
+ | } | ||
+ | */ | ||
+ | int a = pin_lin[i]; | ||
+ | |||
+ | digitalWrite2(a, | ||
+ | |||
+ | // COLONNES < 2 | ||
+ | for (int j = 0; j < 2; j++) { | ||
+ | |||
+ | int b = pin_col[j]; | ||
+ | digitalWrite2(b, | ||
+ | |||
+ | } | ||
+ | |||
+ | int AC_detect = LOW; | ||
+ | // Wait for AC sync... | ||
+ | while ( AC_detect != HIGH) { | ||
+ | AC_detect = digitalRead2(pinACsense); | ||
+ | } | ||
+ | |||
+ | // | ||
+ | /* | ||
+ | delayMicroseconds(intensity_time); | ||
+ | intensity_time += step; | ||
+ | if(abs(intensity_time) > 9000) step=-step; | ||
+ | */ | ||
+ | // ligne down | ||
+ | digitalWrite2(a, | ||
+ | |||
+ | // cols down | ||
+ | for (int j = 0; j < 2; j++) { | ||
+ | int b = pin_col[j]; | ||
+ | digitalWrite2(b, | ||
+ | } | ||
+ | |||
+ | // back_from_last_scan = true; | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | ++++ | ||
===== Roadmap ===== | ===== Roadmap ===== |
projets/fuz/ac_giant_led_matrix.1550270535.txt.gz · Last modified: 2023-02-02 22:06 (external edit)