[Из песочницы] Как я писал код для Arduino с помощью Python

23d11ffd5a4e4d27afc1161bc52ce28d.jpg

// Задаем пины
#define PIN_a 2
#define PIN_b 3
#define PIN_c 4
#define PIN_d 5
#define PIN_e 6
#define PIN_f 7
#define PIN_g 8
#define PIN_h 9
#define PIN_i 10
#define PIN_j 11
#define PIN_k 12
#define PIN_l 13
#define PIN_m 14
#define PIN_n 15
#define PIN_o 16
#define PIN_p 17
#define PIN_q 18
#define PIN_r 19
#define PIN_s 20
#define PIN_t 21
#define PIN_u 22
#define PIN_v 23
#define PIN_w 24
#define PIN_x 25
#define PIN_y 26
#define PIN_z 27
#define PIN_A 28
#define PIN_B 29
#define PIN_C 30
#define PIN_D 31
#define PIN_E 32
#define PIN_F 33
#define PIN_G 34
#define PIN_H 35
#define PIN_I 36
#define PIN_J 37
#define PIN_K 38
#define PIN_L 39
#define PIN_M 40
#define PIN_N 41
#define PIN_O 42
#define PIN_P 43
#define PIN_Q 44
#define PIN_R 45
#define PIN_S 46
#define PIN_T 47
#define PIN_U 48
#define PIN_V 49
#define PIN_W 50
#define PIN_X 51
#define PIN_Y 52
#define PIN_Z 53

//Задаем время
//Здесь, скорее всего, потребуется поправка
//Например, 1 секунда может быть не 1000, а 865, к примеру.
//Нужно будет секундомером померить, и, если необходимо,
// уменьшить на некий коофициент
#define TIME_a 1000
#define TIME_b 1000
#define TIME_c 1000
#define TIME_d 1000
#define TIME_e 1000
#define TIME_f 1000
#define TIME_g 1000
#define TIME_h 1000
#define TIME_i 1000
#define TIME_j 1000
#define TIME_k 1000
#define TIME_l 1000
#define TIME_m 1000
#define TIME_n 1000
#define TIME_o 1000
#define TIME_p 1000
#define TIME_q 1000
#define TIME_r 1000
#define TIME_s 1000
#define TIME_t 1000
#define TIME_u 1000
#define TIME_v 1000
#define TIME_w 1000
#define TIME_x 1000
#define TIME_y 1000
#define TIME_z 1000
#define TIME_A 1000
#define TIME_B 1000
#define TIME_C 1000
#define TIME_D 1000
#define TIME_E 1000
#define TIME_F 1000
#define TIME_G 1000
#define TIME_H 1000
#define TIME_I 1000
#define TIME_J 1000
#define TIME_K 1000
#define TIME_L 1000
#define TIME_M 1000
#define TIME_N 1000
#define TIME_O 1000
#define TIME_P 1000
#define TIME_Q 1000
#define TIME_R 1000
#define TIME_S 1000
#define TIME_T 1000
#define TIME_U 1000
#define TIME_V 1000
#define TIME_W 1000
#define TIME_X 1000
#define TIME_Y 1000
#define TIME_Z 1000

//логическое состояние светодиода (да / нет)
boolean ledState_a = false;
boolean ledState_b = false;
boolean ledState_c = false;
boolean ledState_d = false;
boolean ledState_e = false;
boolean ledState_f = false;
boolean ledState_g = false;
boolean ledState_h = false;
boolean ledState_i = false;
boolean ledState_j = false;
boolean ledState_k = false;
boolean ledState_l = false;
boolean ledState_m = false;
boolean ledState_n = false;
boolean ledState_o = false;
boolean ledState_p = false;
boolean ledState_q = false;
boolean ledState_r = false;
boolean ledState_s = false;
boolean ledState_t = false;
boolean ledState_u = false;
boolean ledState_v = false;
boolean ledState_w = false;
boolean ledState_x = false;
boolean ledState_y = false;
boolean ledState_z = false;
boolean ledState_A = false;
boolean ledState_B = false;
boolean ledState_C = false;
boolean ledState_D = false;
boolean ledState_E = false;
boolean ledState_F = false;
boolean ledState_G = false;
boolean ledState_H = false;
boolean ledState_I = false;
boolean ledState_J = false;
boolean ledState_K = false;
boolean ledState_L = false;
boolean ledState_M = false;
boolean ledState_N = false;
boolean ledState_O = false;
boolean ledState_P = false;
boolean ledState_Q = false;
boolean ledState_R = false;
boolean ledState_S = false;
boolean ledState_T = false;
boolean ledState_U = false;
boolean ledState_V = false;
boolean ledState_W = false;
boolean ledState_X = false;
boolean ledState_Y = false;
boolean ledState_Z = false;

//Переменные, для хранения времени
int time_a = 0;
int time_b = 0;
int time_c = 0;
int time_d = 0;
int time_e = 0;
int time_f = 0;
int time_g = 0;
int time_h = 0;
int time_i = 0;
int time_j = 0;
int time_k = 0;
int time_l = 0;
int time_m = 0;
int time_n = 0;
int time_o = 0;
int time_p = 0;
int time_q = 0;
int time_r = 0;
int time_s = 0;
int time_t = 0;
int time_u = 0;
int time_v = 0;
int time_w = 0;
int time_x = 0;
int time_y = 0;
int time_z = 0;
int time_A = 0;
int time_B = 0;
int time_C = 0;
int time_D = 0;
int time_E = 0;
int time_F = 0;
int time_G = 0;
int time_H = 0;
int time_I = 0;
int time_J = 0;
int time_K = 0;
int time_L = 0;
int time_M = 0;
int time_N = 0;
int time_O = 0;
int time_P = 0;
int time_Q = 0;
int time_R = 0;
int time_S = 0;
int time_T = 0;
int time_U = 0;
int time_V = 0;
int time_W = 0;
int time_X = 0;
int time_Y = 0;
int time_Z = 0;

void setup () {
// не стал переписывать инициализацию
Serial.begin (9600);
for (int i = 2; i <= 53; i++)
pinMode (i, OUTPUT);
}
void loop () {
if (Serial.available () >0) {
int x = Serial.read ();

//Проверяем, что у нас пришло

//a
if (x == 'a'){
ledState_a = true;
time_a = TIME_a;
x = 0;
}

//b
if (x == 'b'){
ledState_b = true;
time_b = TIME_b;
x = 0;
}

//c
if (x == 'c'){
ledState_c = true;
time_c = TIME_c;
x = 0;
}

//d
if (x == 'd'){
ledState_d = true;
time_d = TIME_d;
x = 0;
}

//e
if (x == 'e'){
ledState_e = true;
time_e = TIME_e;
x = 0;
}

//f
if (x == 'f'){
ledState_f = true;
time_f = TIME_f;
x = 0;
}

//g
if (x == 'g'){
ledState_g = true;
time_g = TIME_g;
x = 0;
}

//h
if (x == 'h'){
ledState_h = true;
time_h = TIME_h;
x = 0;
}

//i
if (x == 'i'){
ledState_i = true;
time_i = TIME_i;
x = 0;
}

//j
if (x == 'j'){
ledState_j = true;
time_j = TIME_j;
x = 0;
}

//k
if (x == 'k'){
ledState_k = true;
time_k = TIME_k;
x = 0;
}

//l
if (x == 'l'){
ledState_l = true;
time_l = TIME_l;
x = 0;
}

//m
if (x == 'm'){
ledState_m = true;
time_m = TIME_m;
x = 0;
}

//n
if (x == 'n'){
ledState_n = true;
time_n = TIME_n;
x = 0;
}

//o
if (x == 'o'){
ledState_o = true;
time_o = TIME_o;
x = 0;
}

//p
if (x == 'p'){
ledState_p = true;
time_p = TIME_p;
x = 0;
}

//q
if (x == 'q'){
ledState_q = true;
time_q = TIME_q;
x = 0;
}

//r
if (x == 'r'){
ledState_r = true;
time_r = TIME_r;
x = 0;
}

//s
if (x == 's'){
ledState_s = true;
time_s = TIME_s;
x = 0;
}

//t
if (x == 't'){
ledState_t = true;
time_t = TIME_t;
x = 0;
}

//u
if (x == 'u'){
ledState_u = true;
time_u = TIME_u;
x = 0;
}

//v
if (x == 'v'){
ledState_v = true;
time_v = TIME_v;
x = 0;
}

//w
if (x == 'w'){
ledState_w = true;
time_w = TIME_w;
x = 0;
}

//x
if (x == 'x'){
ledState_x = true;
time_x = TIME_x;
x = 0;
}

//y
if (x == 'y'){
ledState_y = true;
time_y = TIME_y;
x = 0;
}

//z
if (x == 'z'){
ledState_z = true;
time_z = TIME_z;
x = 0;
}
//Когда приходит большая буква — меняем состояние

//A
if (x == 'A'){
digitalWrite (PIN_A, ! digitalRead (PIN_A));
x = 0;
}

//B
if (x == 'B'){
digitalWrite (PIN_B, ! digitalRead (PIN_B));
x = 0;
}

//C
if (x == 'C'){
digitalWrite (PIN_C, ! digitalRead (PIN_C));
x = 0;
}

//D
if (x == 'D'){
digitalWrite (PIN_D, ! digitalRead (PIN_D));
x = 0;
}

//E
if (x == 'E'){
digitalWrite (PIN_E, ! digitalRead (PIN_E));
x = 0;
}

//F
if (x == 'F'){
digitalWrite (PIN_F, ! digitalRead (PIN_F));
x = 0;
}

//G
if (x == 'G'){
digitalWrite (PIN_G, ! digitalRead (PIN_G));
x = 0;
}

//H
if (x == 'H'){
digitalWrite (PIN_H, ! digitalRead (PIN_H));
x = 0;
}

//I
if (x == 'I'){
digitalWrite (PIN_I, ! digitalRead (PIN_I));
x = 0;
}

//J
if (x == 'J'){
digitalWrite (PIN_J, ! digitalRead (PIN_J));
x = 0;
}

//K
if (x == 'K'){
digitalWrite (PIN_K, ! digitalRead (PIN_K));
x = 0;
}

//L
if (x == 'L'){
digitalWrite (PIN_L, ! digitalRead (PIN_L));
x = 0;
}

//M
if (x == 'M'){
digitalWrite (PIN_M, ! digitalRead (PIN_M));
x = 0;
}

//N
if (x == 'N'){
digitalWrite (PIN_N, ! digitalRead (PIN_N));
x = 0;
}

//O
if (x == 'O'){
digitalWrite (PIN_O, ! digitalRead (PIN_O));
x = 0;
}

//P
if (x == 'P'){
digitalWrite (PIN_P, ! digitalRead (PIN_P));
x = 0;
}

//Q
if (x == 'Q'){
digitalWrite (PIN_Q, ! digitalRead (PIN_Q));
x = 0;
}

//R
if (x == 'R'){
digitalWrite (PIN_R, ! digitalRead (PIN_R));
x = 0;
}

//S
if (x == 'S'){
digitalWrite (PIN_S, ! digitalRead (PIN_S));
x = 0;
}

//T
if (x == 'T'){
digitalWrite (PIN_T, ! digitalRead (PIN_T));
x = 0;
}

//U
if (x == 'U'){
digitalWrite (PIN_U, ! digitalRead (PIN_U));
x = 0;
}

//V
if (x == 'V'){
digitalWrite (PIN_V, ! digitalRead (PIN_V));
x = 0;
}

//W
if (x == 'W'){
digitalWrite (PIN_W, ! digitalRead (PIN_W));
x = 0;
}

//X
if (x == 'X'){
digitalWrite (PIN_X, ! digitalRead (PIN_X));
x = 0;
}

//Y
if (x == 'Y'){
digitalWrite (PIN_Y, ! digitalRead (PIN_Y));
x = 0;
}

//Z
if (x == 'Z'){
digitalWrite (PIN_Z, ! digitalRead (PIN_Z));
x = 0;
}

}
//a
if (ledState_a == true){
time_a = time_a — 1;
digitalWrite (PIN_a, HIGH);
}

if (time_a == 0){
ledState_a = false;
}

if (ledState_a == false){
digitalWrite (PIN_a, LOW);
}

//b
if (ledState_b == true){
time_b = time_b — 1;
digitalWrite (PIN_b, HIGH);
}

if (time_b == 0){
ledState_b = false;
}

if (ledState_b == false){
digitalWrite (PIN_b, LOW);
}

//c
if (ledState_c == true){
time_c = time_c — 1;
digitalWrite (PIN_c, HIGH);
}

if (time_c == 0){
ledState_c = false;
}

if (ledState_c == false){
digitalWrite (PIN_c, LOW);
}

//d
if (ledState_d == true){
time_d = time_d — 1;
digitalWrite (PIN_d, HIGH);
}

if (time_d == 0){
ledState_d = false;
}

if (ledState_d == false){
digitalWrite (PIN_d, LOW);
}

//e
if (ledState_e == true){
time_e = time_e — 1;
digitalWrite (PIN_e, HIGH);
}

if (time_e == 0){
ledState_e = false;
}

if (ledState_e == false){
digitalWrite (PIN_e, LOW);
}

//f
if (ledState_f == true){
time_f = time_f — 1;
digitalWrite (PIN_f, HIGH);
}

if (time_f == 0){
ledState_f = false;
}

if (ledState_f == false){
digitalWrite (PIN_f, LOW);
}

//g
if (ledState_g == true){
time_g = time_g — 1;
digitalWrite (PIN_g, HIGH);
}

if (time_g == 0){
ledState_g = false;
}

if (ledState_g == false){
digitalWrite (PIN_g, LOW);
}

//h
if (ledState_h == true){
time_h = time_h — 1;
digitalWrite (PIN_h, HIGH);
}

if (time_h == 0){
ledState_h = false;
}

if (ledState_h == false){
digitalWrite (PIN_h, LOW);
}

//i
if (ledState_i == true){
time_i = time_i — 1;
digitalWrite (PIN_i, HIGH);
}

if (time_i == 0){
ledState_i = false;
}

if (ledState_i == false){
digitalWrite (PIN_i, LOW);
}

//j
if (ledState_j == true){
time_j = time_j — 1;
digitalWrite (PIN_j, HIGH);
}

if (time_j == 0){
ledState_j = false;
}

if (ledState_j == false){
digitalWrite (PIN_j, LOW);
}

//k
if (ledState_k == true){
time_k = time_k — 1;
digitalWrite (PIN_k, HIGH);
}

if (time_k == 0){
ledState_k = false;
}

if (ledState_k == false){
digitalWrite (PIN_k, LOW);
}

//l
if (ledState_l == true){
time_l = time_l — 1;
digitalWrite (PIN_l, HIGH);
}

if (time_l == 0){
ledState_l = false;
}

if (ledState_l == false){
digitalWrite (PIN_l, LOW);
}

//m
if (ledState_m == true){
time_m = time_m — 1;
digitalWrite (PIN_m, HIGH);
}

if (time_m == 0){
ledState_m = false;
}

if (ledState_m == false){
digitalWrite (PIN_m, LOW);
}

//n
if (ledState_n == true){
time_n = time_n — 1;
digitalWrite (PIN_n, HIGH);
}

if (time_n == 0){
ledState_n = false;
}

if (ledState_n == false){
digitalWrite (PIN_n, LOW);
}

//o
if (ledState_o == true){
time_o = time_o — 1;
digitalWrite (PIN_o, HIGH);
}

if (time_o == 0){
ledState_o = false;
}

if (ledState_o == false){
digitalWrite (PIN_o, LOW);
}

//p
if (ledState_p == true){
time_p = time_p — 1;
digitalWrite (PIN_p, HIGH);
}

if (time_p == 0){
ledState_p = false;
}

if (ledState_p == false){
digitalWrite (PIN_p, LOW);
}

//q
if (ledState_q == true){
time_q = time_q — 1;
digitalWrite (PIN_q, HIGH);
}

if (time_q == 0){
ledState_q = false;
}

if (ledState_q == false){
digitalWrite (PIN_q, LOW);
}

//r
if (ledState_r == true){
time_r = time_r — 1;
digitalWrite (PIN_r, HIGH);
}

if (time_r == 0){
ledState_r = false;
}

if (ledState_r == false){
digitalWrite (PIN_r, LOW);
}

//s
if (ledState_s == true){
time_s = time_s — 1;
digitalWrite (PIN_s, HIGH);
}

if (time_s == 0){
ledState_s = false;
}

if (ledState_s == false){
digitalWrite (PIN_s, LOW);
}

//t
if (ledState_t == true){
time_t = time_t — 1;
digitalWrite (PIN_t, HIGH);
}

if (time_t == 0){
ledState_t = false;
}

if (ledState_t == false){
digitalWrite (PIN_t, LOW);
}

//u
if (ledState_u == true){
time_u = time_u — 1;
digitalWrite (PIN_u, HIGH);
}

if (time_u == 0){
ledState_u = false;
}

if (ledState_u == false){
digitalWrite (PIN_u, LOW);
}

//v
if (ledState_v == true){
time_v = time_v — 1;
digitalWrite (PIN_v, HIGH);
}

if (time_v == 0){
ledState_v = false;
}

if (ledState_v == false){
digitalWrite (PIN_v, LOW);
}

//w
if (ledState_w == true){
time_w = time_w — 1;
digitalWrite (PIN_w, HIGH);
}

if (time_w == 0){
ledState_w = false;
}

if (ledState_w == false){
digitalWrite (PIN_w, LOW);
}

//x
if (ledState_x == true){
time_x = time_x — 1;
digitalWrite (PIN_x, HIGH);
}

if (time_x == 0){
ledState_x = false;
}

if (ledState_x == false){
digitalWrite (PIN_x, LOW);
}

//y
if (ledState_y == true){
time_y = time_y — 1;
digitalWrite (PIN_y, HIGH);
}

if (time_y == 0){
ledState_y = false;
}

if (ledState_y == false){
digitalWrite (PIN_y, LOW);
}

//z
if (ledState_z == true){
time_z = time_z — 1;
digitalWrite (PIN_z, HIGH);
}

if (time_z == 0){
ledState_z = false;
}

if (ledState_z == false){
digitalWrite (PIN_z, LOW);
}

delay (1);

}

© Geektimes