))))))))))) а разве электрон сгенерировать можно?) я думал его только от атома "оторвать"
Ну я и имел в виду под "генерацией" отрывание электронов с их орбит и продаже населению и промышленности по сходным тарифам. Не знаю людей, которые видели эти электроны, но знаю нескольких, которые на самой идее поднялись не по детски))
Я тоже хочу. А приходится коробочки клеить. В 50+ тока кондуктором устроиться реально.
При том, что в коммерческой промышленности ОСТРЫЙ дефицит технарей высокой квалификации: (главных) инженеров, энергетиков, технологов все знают по именам в каждой отрасли... С конструкторами вообще катастрофа.
на большие расстояния можно только мощность передать, электроны они примерно на одном и том же месте зудят с частотой 50 гц, насколько я понимаю
))))))))))) а разве электрон сгенерировать можно?) я думал его только от атома "оторвать"
Ну я и имел в виду под "генерацией" отрывание электронов с их орбит и продаже населению и промышленности по сходным тарифам. Не знаю людей, которые видели эти электроны, но знаю нескольких, которые на самой идее поднялись не по детски))
Я тоже хочу. А приходится коробочки клеить. В 50+ тока кондуктором устроиться реально.
Я тоже хочу. А приходится коробочки клеить. В 50+ тока кондуктором устроиться реально.
мне 30
Я тоже хочу. А приходится коробочки клеить. В 50+ тока кондуктором устроиться реально.
При том, что в коммерческой промышленности ОСТРЫЙ дефицит технарей высокой квалификации: (главных) инженеров, энергетиков, технологов все знают по именам в каждой отрасли... С конструкторами вообще катастрофа.
Всем по умолчанию за 55.
В промышленности свежей крови нет. Все, кто поумней, в ит. ИМХО
Удовольствие я получил от выполнения. Поэтому хочу "добить".
Зацепила тема, так как сам ещё начинающий.
Я думаю, и не могло получиться, т.к. матрица, скорее всего с динамической индикацией, и простым
digitalWrite() не отделаешься. Вообще, прежде чем писать прогу , надо определиться с железом, а то digitalWrite, а куда , зачем, непонятно...
Ради интереса, сделал вариант для простой матрицы с дин. индикацией. Может быть чем то поможет
bool On_led[4][4] = { // массив флагов {0, 0, 0, 0}, // активных диодов {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, }; byte status_btn[4][4] = { //массив состяния кнопок {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0} }; const byte button[4][4] = { {1, 2, 3, 4}, //'1','4','7','*' задаём {5, 6, 7, 8}, //'2','5','8','0' номера кнопок {9, 10, 11, 12}, //'3','6','9','#' {13, 14, 15, 16} //'A','B','C','D' }; byte str = 0; //строки On_led byte stb = 0; // столбцы On_led byte z; // столбцы кнопки byte i = 1; // строки кнопки byte str_ind = 10;// строки индикации unsigned long last_millis = 0; void led(); void read_button(); void setup() { Serial.begin(9600); pinMode(2, OUTPUT); // строки кнопки pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, INPUT); // столбцы pinMode(7, INPUT); // пины подтянуты pinMode(8, INPUT); // к земле активный HIGH pinMode(9, INPUT); pinMode(10, OUTPUT); // строки LED pinMode(11, OUTPUT); pinMode(12, OUTPUT); pinMode(13, OUTPUT); pinMode(14, OUTPUT); // столбцы LED pinMode(15, OUTPUT); pinMode(16, OUTPUT); pinMode(17, OUTPUT); } void loop() { if (millis() - last_millis >= 8) { // каждые 8мс last_millis = millis(); led(); } } void led() { byte str_state; digitalWrite(str_ind, LOW); //гасим предыдущую строку for (byte ff = 14; ff < 18; ff++) { digitalWrite(ff, LOW); // } str_ind++; if (str_ind > 13) { str_ind = 10; read_button(); } str_state = str_ind - 10; digitalWrite(str_ind, HIGH); //активируем строку for (byte zz = 0; zz < 4; zz++) { if (On_led[str_state][zz]) digitalWrite(zz + 14, HIGH); } } void read_button() { digitalWrite(i, LOW); //гасим предыдущую строку кнопок i++; if (i > 6) i = 2; digitalWrite(i, HIGH); //"активируем" строку кнопок for (z = 6; z < 10; z++) { //опрашиваем столбец str = i - 2; // номер текущей строки On_led stb = z - 6; // номер текущего столбца On_led if((digitalRead(z) == LOW) && (status_btn[str][stb] == 1)){ //если кнопка удерживается // менее 32мс - сброс status_btn[str][stb] == 0; } if ((digitalRead(z)) && (status_btn[str][stb] == 0) ) { // если кнопка нажата, но ещё не активна status_btn[str][stb] = 1; //будем проверять на антидребезг } else if ((digitalRead(z)) && (status_btn[str][stb] == 1) ) { // если подтвердили, что кнопка нажата status_btn[str][stb] = 2; //фиксируем, что кнопка нажата 1-ый раз Serial.println(button[str][stb]);// печатаем номер кнопки On_led[str][stb] = true; // зажигаем диод } else if ((digitalRead(z) == LOW) && (status_btn[str][stb] == 2)) { // если кнопка была нажата 1 раз, // и отпущена status_btn[str][stb] = 3; //ждём подтверждения антидребезга } else if ((digitalRead(z) == LOW) && (status_btn[str][stb] == 3)) { // констатируем факт 1-го status_btn[str][stb] = 4; // нажатия и отпускания кнопки } else if ((digitalRead(z)) && (status_btn[str][stb] == 4)) { // если кнопка нажата повторно status_btn[str][stb] = 5; //ждём подтверждения антидребезга } else if ((digitalRead(z)) && (status_btn[str][stb] == 5)) { //подтвердаем второе нажатие status_btn[str][stb] = 6; On_led[str][stb] = false; //гасим диод } else if ((digitalRead(z) == LOW) && (status_btn[str][stb] == 6)) { // если status_btn[str][stb] = 7; // кнопка отпущена } else if ((digitalRead(z) == LOW) && (status_btn[str][stb] == 7)) { // подтверждаем status_btn[str][stb] = 0; } } }мне 30
Бывает, чо. Это быстро пройдёть. :)
мне 30
Бывает, чо. Это быстро пройдёть. :)
Между 30 и 50 только миг.
И он называется...