This is an old revision of the document!
Ac giant led matrix
Ressources
Ressources
Dev
Code arduino 240V led matrix test simple
#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 arduino 240V led matrix with AC sensing and FastIO
#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;
}
}
Roadmap
trouver le principe
sourcer les compos
faire la matrice
faire la commande
faire le programme
assembler le tout !
Follow-up
Project created on
Fri 15-02-19 by
barzi