вот так выглядит мой скетч, с гашением одного сегмента
осциллограмма нужна?
#define dm 1550
PORTB = B10001
PORTD = B11111111
delayMicroseconds(dm);
PORTB = B11111
PORTD = B11111111
delayMicroseconds(dm);
PORTB = B00000
PORTD = B00000000
delayMicroseconds(dm);
PORTB = B01110
PORTD = B00000000
delayMicroseconds(dm);
Гы! Прогресс! А теперь скажу гадость: все это требует подбора базового напряжения. В идеальном мире - линейкой формирователей уровня. В нашем случае можно крутить питание Ардуино. Если диапазона хватит!
спасибо! А в чём цель подбора, ресурс? Я думаю нанку можно “опустить” вольт до трёх…
В получении нужных значений среднеквадратичного напряжения выключенного сегмента. Ниже порогового значения.
Ысчо рас: для того, чтобы понять выше написанное и нужна Вышка.
В крайнем скетче пробуй уменьшать кардинально dm - по идее должно погаснуть одно знакоместо целиком
что 1550 что просто 50 разницы вообще нет
Тут размах сигнал всего 0.6 В !!!
глянь одним глазом то, что я пытался писать, закомментированная часть если её взять отдельно, гасит один элемент порта COM1
чтобы погасить всё знакоместо, нужно погасить по четыре сегмента COM0 и COM1
я боюсь там щуп ослика был на 1х10
Не похоже - на других осциллограммах не видно разряда емкостей
Какой ваш кусок кода точно гасил сегмент ? Перепостите
вот, первая часть гасит “шпалу” у первого знакоместа в СОМ0
если первую закомментировать а вторую раскомментировать, гасит “шпалу” у первого знакоместа в СОМ1
но вот заставить гасить шпалу и по СОМ0 и по СОМ1 одновременно не получается…
void setup() {
// ↓ - этот бит порта В это тоже сегмент, последний, 9-тый
DDRB = B111111; // ком порты
DDRD = B11111111; // сегменты
}
void loop() {
// ↓ - этот бит порта В это тоже сегмент, последний, 9-тый
PORTB = B001111;
PORTD = B00000001;
delayMicroseconds(500);
PORTB = B000001;
PORTD = B00000001;
delayMicroseconds(500);
PORTB = B001111;
PORTD = B00000001;
delayMicroseconds(500);
PORTB = B010000;
PORTD = B11111110;
delayMicroseconds(500);
PORTB = B011110;
PORTD = B11111110;
delayMicroseconds(500);
PORTB = B010000;
PORTD = B11111110;
delayMicroseconds(500);
//=======================================================
/* PORTB = B001111;
PORTD = B00000001;
delayMicroseconds(500);
PORTB = B000010;
PORTD = B00000001;
delayMicroseconds(500);
PORTB = B001111;
PORTD = B00000001;
delayMicroseconds(500);
PORTB = B010000;
PORTD = B11111110;
delayMicroseconds(500);
PORTB = B011101;
PORTD = B11111110;
delayMicroseconds(500);
PORTB = B010000;
PORTD = B11111110;
delayMicroseconds(500); */
}
void setup() {
// ↓ - этот бит порта В это тоже сегмент, последний, 9-тый
DDRB = B111111; // ком порты
DDRD = B11111111; // сегменты
}
void loop() {
// ↓ - этот бит порта В это тоже сегмент, последний, 9-тый
PORTB = B001111;
PORTD = B11111111;
delayMicroseconds(500);
PORTB = B000001;
PORTD = B11111111;
delayMicroseconds(500);
PORTB = B001111;
PORTD = B11111111;
delayMicroseconds(500);
PORTB = B010000;
PORTD = B00000000;
delayMicroseconds(500);
PORTB = B011110;
PORTD = B00000000;
delayMicroseconds(500);
PORTB = B010000;
PORTD = B00000000;
delayMicroseconds(500);
}
я вот всё таки думаю, может стоит ковырнуть эту хрень не по выходу а по входу?
какую нить библиотеку типа HT1621 на неё натравить?
PORTB = B001111;
PORTD = B00000001;
delayMicroseconds(500);
PORTB = B001111;
PORTD = B00000001;
delayMicroseconds(500);
PORTB = B001111;
PORTD = B00000001;
delayMicroseconds(500);
PORTB = B010000;
PORTD = B11111110;
delayMicroseconds(500);
PORTB = B010000;
PORTD = B11111110;
delayMicroseconds(500);
PORTB = B010000;
PORTD = B11111110;
delayMicroseconds(500);