User Tools

Site Tools


projets:fuz:ac_giant_led_matrix

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
projets:fuz:ac_giant_led_matrix [2019-02-22 14:06] barziprojets:fuz:ac_giant_led_matrix [2019-02-22 20:22] barzi
Line 12: Line 12:
   * [[https://www.vishay.com/docs/83608/h11aa1.pdf|Optocoupleur/capteur 240V du secteur]]   * [[https://www.vishay.com/docs/83608/h11aa1.pdf|Optocoupleur/capteur 240V du secteur]]
   * [[https://hackspark.fr/fr/electronique/1310-relay-module-solid-state-high-level-8-channel-5v-dc-.html|solid state relayX8]] qui est zerocrossing   * [[https://hackspark.fr/fr/electronique/1310-relay-module-solid-state-high-level-8-channel-5v-dc-.html|solid state relayX8]] qui est zerocrossing
 +
 +===== Dev =====
 +
 +++++ 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], OUTPUT);
 +  }
 +
 +  for (int i = 0; i < LIN_NB; i++) {
 +    pinMode(pin_lin[i], OUTPUT);
 +  }
 +
 +  Serial.begin(114200);
 +  Serial.println("let's rock!");
 +}
 +
 +void loop() {
 +
 +  for (int i = 0; i < 2; i++) {
 +    int a = random(2) + 2;
 +    //int a=pin_col[i];
 +
 +    digitalWrite(a, HIGH);
 +    Serial.print("col= ");
 +    Serial.println(a);
 +
 +    for (int j = 0; j < LIN_NB; j++) {
 +      int b = random(7) + 4;
 +      //int a=pin_lin[j];
 +
 +      digitalWrite(b, HIGH);
 +      Serial.print("line= ");
 +      Serial.println(pin_lin[j]);
 +      delay(50);
 +      
 +      random(5)==0?digitalWrite(b, LOW):digitalWrite(b, HIGH);
 +    }
 +
 +    digitalWrite(a, LOW);
 +
 +    /*
 +        for (int j = 0; j < LIN_NB; j++) {
 +          //digitalWrite(pin_lin[j], HIGH);
 +          Serial.print("line= ");
 +          Serial.println(pin_lin[j]);
 +          delay(10);
 +          digitalWrite(pin_lin[j], LOW);
 +        }
 +
 +        digitalWrite(pin_col[i], LOW);
 +    */
 +  }
 +
 +}
 +</code>
 +++++
 +
 +++++ Code arduino 240V led matrix with AC sensing and FastIO | 
 +<code c>
 +#include <DIO2.h>
 +
 +
 +#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
 +#define  pinACsense A0
 +int last_AC_detect = LOW;
 +
 +void setup() {
 +  //AC
 +  pinMode2(pinACsense, INPUT);
 +  pinMode2(LED_BUILTIN, OUTPUT);
 +
 +  for (int i = 0; i < COL_NB; i++) {
 +    pinMode2(pin_col[i], OUTPUT);
 +  }
 +
 +  for (int i = 0; i < LIN_NB; i++) {
 +    pinMode2(pin_lin[i], OUTPUT);
 +  }
 +
 +  //Serial.begin(114200);
 +  //Serial.println("let's rock!");
 +}
 +
 +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, HIGH);
 +
 +    // COLONNES < 2
 +    for (int j = 0; j < 2; j++) {
 +
 +      int b = pin_col[j];
 +      digitalWrite2(b, HIGH);
 +
 +    }
 +
 +    int AC_detect = LOW;
 +    // Wait for AC sync...
 +    while ( AC_detect !=  HIGH) {
 +      AC_detect = digitalRead2(pinACsense);
 +    }
 +    
 +    //delayMicroseconds(9000);
 +    /*
 +        delayMicroseconds(intensity_time);
 +        intensity_time += step;
 +        if(abs(intensity_time) > 9000) step=-step;
 +    */
 +    // ligne down
 +    digitalWrite2(a, LOW);
 +
 +    // cols down
 +    for (int j = 0; j < 2; j++) {
 +      int b = pin_col[j];
 +      digitalWrite2(b, LOW);
 +    }
 +
 +//    back_from_last_scan = true;
 +
 +  }
 +
 +}
 +</code>
 +++++
 +
  
 ===== Roadmap ===== ===== Roadmap =====
projets/fuz/ac_giant_led_matrix.txt · Last modified: 2023-02-02 22:06 by 127.0.0.1