Яркость по времени
Яркость по времени
Собрал часы на МАХ7219. Днем не хватало яркости. Переделал на сдвиговые регистры 74НС595 . Теперь днем нормально, ночью светят как прожектор. Как в данном проекте менять яркость по времени? Что добавить? Фотодиод не предлагать.
P.S. Забыл сказать. Семисегмент собран из светодиодной ленты.
P.S. Забыл сказать. Семисегмент собран из светодиодной ленты.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось hatul 19 ноя 2020, 20:51, всего редактировалось 1 раз.
Яркость по времени
На форуме гдето есть блок рассвет-закат, вроде так назывался
когда мастерю обычно подсматриваю,
не рыли ли окоп в том же направлении,
не изобретали ли велосипед с такими-же квадратными как у меня колёсами,
а уже потом - не торопясь, торю свою лыжню
не рыли ли окоп в том же направлении,
не изобретали ли велосипед с такими-же квадратными как у меня колёсами,
а уже потом - не торопясь, торю свою лыжню
Яркость по времени
Ну тогда просто по времени, днем ярко, с 23ч до 7ч тускло
когда мастерю обычно подсматриваю,
не рыли ли окоп в том же направлении,
не изобретали ли велосипед с такими-же квадратными как у меня колёсами,
а уже потом - не торопясь, торю свою лыжню
не рыли ли окоп в том же направлении,
не изобретали ли велосипед с такими-же квадратными как у меня колёсами,
а уже потом - не торопясь, торю свою лыжню
Яркость по времени
Как!? Это как раз то, что я и не могу сообразить. Когда делал на МАХ7219,там есть вход "яркость". В нужное время задавал нужную яркость. А здесь нет такого входа.
-
- Полковник
- Сообщения: 3358
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 13 раз
- Поблагодарили: 100 раз
- Контактная информация:
Яркость по времени
Удалил
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось aidar_i 19 ноя 2020, 22:12, всего редактировалось 1 раз.
Яркость по времени
[ref=#000080]aidar_i[/ref], Ниче не понял! Где здесь FlProg ? Где 74НС595? Где яркость? Короче как в том анекдоте:"дяденька,вы с кем сейчас разговаривали!".
-
- Лейтенант
- Сообщения: 310
- Зарегистрирован: 10 сен 2020, 14:37
- Имя: Иван
- Благодарил (а): 3 раза
- Поблагодарили: 5 раз
Яркость по времени
[ref]hatul[/ref], уровнями на digital 8-9-10 регулируешь яркость.
что непонятного?
что непонятного?

-
- Полковник
- Сообщения: 3358
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 13 раз
- Поблагодарили: 100 раз
- Контактная информация:
Яркость по времени
Выводами 8-10 попробуйте регулировать яркость шимом. Вам нужно только это, все остальное с 74НС595 остается как у Вас. FLProg у Вас в компе.
Есть и другой вариант, зажигаем сегменты на несколько циклов , потом тушим на несколько циклов, подбирая их можно изменять яркость.
Дойдут руки, может сделаю.
Есть и другой вариант, зажигаем сегменты на несколько циклов , потом тушим на несколько циклов, подбирая их можно изменять яркость.
Дойдут руки, может сделаю.
Яркость по времени
[ref]ivansidor012[/ref], Вообще то я имел в виду решение посредством FlProg ,без добавления каких либо компонентов. Поэтому и писал "фотодиод не предлагать". А здесь надо 4 транзистора,занять 4 ноги у ESP8266 ,которых и так впритык.Написать код,в котором я вообще не понимаю. И Вы еще спрашиваете "что непонятного".
Отправлено спустя 2 минуты 53 секунды:
Отправлено спустя 2 минуты 53 секунды:
Вот это похоже на то что я хотел. Ну я то такое сам не сделаю. Подождем пока появится время!
-
- Полковник
- Сообщения: 3358
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 13 раз
- Поблагодарили: 100 раз
- Контактная информация:
Яркость по времени
Выкладываю скетч часов с термометром от andycat (arduino.ru) , может кто нибудь обработает (у меня пока со временем туговато). Там есть управление яркостью, функция showLedBuf().
Код: Выделить всё
#include <RCSwitch.h>
#include <Wire.h>
#include <RTClib.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>
#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif
#define PB2_HIGH sbi(PORTB,PB2);
#define PB2_LOW cbi(PORTB,PB2);
#define PB3_HIGH sbi(PORTB,PB3);
#define PB3_LOW cbi(PORTB,PB3);
#define PB4_HIGH sbi(PORTB,PB4);
#define PB4_LOW cbi(PORTB,PB4);
#define RX_PIN 2 // green
// GND blue +5V yellow
#define DS_TPN 8 // DS18B20 grey
// GND black +5V white
OneWire oneWire(DS_TPN);
DallasTemperature sensors(&oneWire);
#define FOTORES A1 // grey
// GND yellow +5V maroon
#define RTC_SDA A4 // - red
#define RTC_SCL A5 // - black
// GND white +5V grey
RTC_DS1307 RTC;
#define LED_SCLK 10 // - blue PB2
#define LED_RCLK 11 // - green PB3
#define LED_DIO 12 // - maroon PB4
// GND yellow +5V orange
#define CYCLE_GET_TIME 60
#define CYCLE_SHOW 4
#define CYCLE_GET_TEMP 243
#define BMP_SCK 4 // - green
#define BMP_MISO 5 // - yellow
#define BMP_MOSI 6 // - orange
#define BMP_CS 7 // - red
// GND blue +5V maroon
//Adafruit_BMP280 bmp; // I2C
//Adafruit_BMP280 bmp(BMP_CS); // hardware SPI
Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO, BMP_SCK);
byte LED_0F[33] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E, 0xC2, 0x89, 0xF9, 0xF1, 0xC3, 0xA9, 0xC0, 0x8C, 0x98, 0x92, 0xC1, 0x91, 0xFE, 0xBF, 0xFF, 0x9C, 0xAB};
// 0123456789AbCdEFGHIJLnOPqSUY_- (null) (degree) (mm)
byte LED_NU[8] = {16, 32, 64, 128, 1, 2, 4, 8};
byte LED_BUF[8] = {30, 30, 30, 30, 30, 30, 30, 30};
byte LED_PWM = 3; // level light 7 = MAX 0 = MIN
byte dd = 99; // day
byte mm = 99; // month
byte yh = 99; // high year
byte yl = 99; // low year
byte ho = 99; // hour
byte mi = 99; // minute
float tt = 99; // temp
float pr = 99; // pressure
unsigned long lu = 0; // last time get street temp
byte streettemp = 99; // street temp 0..60
word mas_str_temp[10];
byte med_str_pos = 0;
byte med_str_cnt = 0;
boolean minus_str_temp = false;
unsigned long timerSec = 0;
byte timerGetTime = 37;
byte timerShow = 0;
byte timerGetTemp = 242;
byte flShow = 0; // 0 time and temp 1 date 2 street temp 3 press
RCSwitch mySwitch = RCSwitch();
void setup() {
// put your setup code here, to run once:
// OFF unused pins
pinMode(0, OUTPUT); digitalWrite(0, LOW);
pinMode(1, OUTPUT); digitalWrite(1, LOW);
pinMode(3, OUTPUT); digitalWrite(3, LOW);
pinMode(10, OUTPUT); digitalWrite(10, LOW);
pinMode(13, OUTPUT); digitalWrite(13, LOW);
pinMode(A0, OUTPUT); digitalWrite(A0, LOW);
pinMode(A2, OUTPUT); digitalWrite(A2, LOW);
pinMode(A3, OUTPUT); digitalWrite(A3, LOW);
pinMode(A6, OUTPUT); digitalWrite(A6, LOW);
pinMode(A7, OUTPUT); digitalWrite(A7, LOW);
//--
pinMode(LED_SCLK, OUTPUT);
pinMode(LED_RCLK, OUTPUT);
pinMode(LED_DIO, OUTPUT);
sensors.begin();
Wire.begin();
if (! RTC.begin()) {
while (1);
}
if (! RTC.isrunning()) {
// following line sets the RTC to the date & time this sketch was compiled
// RTC.adjust(DateTime(F(__DATE__), F(__TIME__)));
// This line sets the RTC with an explicit date & time, for example to set
// January 21, 2014 at 3am you would call:
// rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}
//delay(2000);
//RTC.adjust(DateTime(F(__DATE__), F(__TIME__)));
bmp.begin();
mySwitch.enableReceive(0); // Receiver on inerrupt 0 => that is pin 2 // иницилизация.Используется вывод м/к с прерыванием под номером 0.
}
byte addPoint(byte inByte) {
byte outByte = (inByte << 1);
outByte = (outByte >> 1);
return outByte;
}
void showLedBuf() {
for (byte lp = 0; lp <= LED_PWM; ++lp) {
for (byte i = 0; i <= 7; i++) {
PB3_LOW;
for (byte j = 0; j <= 7; j++) {
if (bitRead(LED_BUF[i], (7 - j))) {
PB4_HIGH;
} else {
PB4_LOW;
}
PB2_HIGH;
PB2_LOW;
}
for (byte j = 0; j <= 7; j++) {
if (bitRead(LED_NU[i], (7 - j))) {
PB4_HIGH;
} else {
PB4_LOW;
}
PB2_HIGH;
PB2_LOW;
}
PB3_HIGH;
}
}
for (byte lp = 0; lp < (7 - LED_PWM); ++lp) {
PB3_LOW;
PB4_HIGH;
for (byte j = 0; j <= 15; j++) {
PB2_HIGH;
PB2_LOW;
}
PB3_HIGH;
delayMicroseconds(350);
}
}
void loop() {
// put your main code here, to run repeatedly:
// receive street temp
if (mySwitch.available()) {
unsigned long receivedCode = mySwitch.getReceivedValue();
mySwitch.resetAvailable();
if ((receivedCode >= 11500UL) && (receivedCode <= 14750UL)) {
receivedCode -= 11500;
if (((receivedCode >= 2000UL) && (receivedCode <= 2600UL)) || ((receivedCode >= 0UL) && (receivedCode <= 400UL))) {
if ((receivedCode <= 400UL)) {
receivedCode = 2000UL - receivedCode;
}
lu = millis();
// correct temp
if (receivedCode <= 1900UL) {
receivedCode -= 12UL; // 1.2 degree
} else {
if (receivedCode <= 1950UL) {
receivedCode -= 8UL; // 0.8 degree
}
else {
if (receivedCode <= 1999UL) {
receivedCode -= 5UL; // 0.5 degree
}
}
}
// --
mas_str_temp[med_str_pos] = (word)(receivedCode);
if ((++med_str_pos) >= 10) {
med_str_pos = 0;
}
if ((++med_str_cnt) >= 10) {
med_str_cnt = 10;
}
word sum_temp = 0;
for (int i = 0; i < med_str_cnt; ++i) {
sum_temp += mas_str_temp[i];
}
sum_temp /= med_str_cnt;
if (sum_temp < 2000) {
minus_str_temp = true;
sum_temp = 2000 - sum_temp;
} else {
minus_str_temp = false;
sum_temp -= 2000;
}
sum_temp /= 10;
streettemp = (byte)(sum_temp);
}
}
}
if ((millis() - timerSec) >= 1000UL) {
timerSec = millis();
//++timerGetTime; ++timerShow; ++timerGetTemp;
if ((++timerGetTime) >= CYCLE_GET_TIME) {
timerGetTime = 0;
// get time and date
DateTime now = RTC.now();
dd = now.day();
mm = now.month();
yh = (now.year()) / 100;
yl = (now.year()) % 100;
ho = now.hour();
mi = now.minute();
}
if ((++timerShow) >= CYCLE_SHOW) {
timerShow = 0;
switch (flShow) {
case 1 : {
// show date
if ((dd >= 1) && (dd <= 31)) {
if (dd < 10) {
LED_BUF[0] = LED_0F[30]; LED_BUF[1] = LED_0F[(dd % 10)];
} else {
LED_BUF[0] = LED_0F[(dd / 10)]; LED_BUF[1] = LED_0F[(dd % 10)];
}
} else {
LED_BUF[0] = LED_0F[30]; LED_BUF[1] = LED_0F[30];
}
LED_BUF[1] = addPoint(LED_BUF[1]);
if ((mm >= 1) && (mm <= 12)) {
if (mm < 10) {
LED_BUF[2] = LED_0F[0]; LED_BUF[3] = LED_0F[(mm % 10)];
} else {
LED_BUF[2] = LED_0F[(mm / 10)]; LED_BUF[3] = LED_0F[(mm % 10)];
}
} else {
LED_BUF[2] = LED_0F[30]; LED_BUF[3] = LED_0F[30];
}
LED_BUF[3] = addPoint(LED_BUF[3]);
if ((yh >= 20) && (yh <= 29) && (yl >= 00) && (yl <= 99)) {
LED_BUF[4] = LED_0F[(yh / 10)]; LED_BUF[5] = LED_0F[(yh % 10)];
if (yl < 10) {
LED_BUF[6] = LED_0F[0]; LED_BUF[7] = LED_0F[(yl % 10)];
} else {
LED_BUF[6] = LED_0F[(yl / 10)]; LED_BUF[7] = LED_0F[(yl % 10)];
}
} else {
LED_BUF[4] = LED_0F[30]; LED_BUF[5] = LED_0F[30]; LED_BUF[6] = LED_0F[30]; LED_BUF[7] = LED_0F[30];
}
++flShow;
break;
}
case 2 : {
unsigned long cplu = timerSec - lu;
if (((cplu) <= 10800000UL) && (streettemp < 99)) { // MAX 3 hour
LED_BUF[3] = LED_0F[31];
LED_BUF[4] = LED_0F[30];
LED_BUF[5] = LED_0F[30];
LED_BUF[6] = LED_0F[30];
LED_BUF[7] = LED_0F[30];
if (minus_str_temp) {
LED_BUF[0] = LED_0F[29];
} else {
LED_BUF[0] = LED_0F[30];
}
if (streettemp < 10) {
LED_BUF[1] = LED_0F[30]; LED_BUF[2] = LED_0F[(streettemp % 10)];
} else {
LED_BUF[1] = LED_0F[(streettemp / 10)]; LED_BUF[2] = LED_0F[(streettemp % 10)];
}
++flShow;
// culculate and show delay last data from device
unsigned long j = cplu / 600000UL; // 1 point = 10 sec (10000UL). if need 10 minute = 600000UL
j = constrain(j, 0UL, 8UL);
for (unsigned long i = 1UL; i <= j; ++i) {
LED_BUF[8 - i] = addPoint(LED_BUF[8 - i]);
}
// -
break;
} else {
++flShow;
}
// show street temp
}
case 3 : {
// show press
if ((pr >= 600) && (pr <= 900)) {
LED_BUF[0] = LED_0F[30]; LED_BUF[1] = LED_0F[30]; LED_BUF[5] = LED_0F[30]; LED_BUF[6] = LED_0F[32]; LED_BUF[7] = LED_0F[32];
int hp = int(pr);
LED_BUF[2] = LED_0F[(hp / 100)];
byte pd = hp % 100;
LED_BUF[3] = LED_0F[(pd / 10)]; LED_BUF[4] = LED_0F[(pd % 10)];
flShow = 0;
break;
} else {
LED_BUF[0] = LED_0F[30]; LED_BUF[1] = LED_0F[30]; LED_BUF[2] = LED_0F[30]; LED_BUF[3] = LED_0F[30];
LED_BUF[4] = LED_0F[30]; LED_BUF[5] = LED_0F[30]; LED_BUF[6] = LED_0F[30]; LED_BUF[7] = LED_0F[30];
flShow = 0;
}
}
default : {
// show time and temp
if ((ho >= 0) && (ho <= 23)) {
if (ho < 10) {
LED_BUF[0] = LED_0F[30]; LED_BUF[1] = LED_0F[(ho % 10)];
} else {
LED_BUF[0] = LED_0F[(ho / 10)]; LED_BUF[1] = LED_0F[(ho % 10)];
}
} else {
LED_BUF[0] = LED_0F[30]; LED_BUF[1] = LED_0F[30];
}
LED_BUF[1] = addPoint(LED_BUF[1]);
if ((mi >= 0) && (mi <= 59)) {
if (mi < 10) {
LED_BUF[2] = LED_0F[0]; LED_BUF[3] = LED_0F[(mi % 10)];
} else {
LED_BUF[2] = LED_0F[(mi / 10)]; LED_BUF[3] = LED_0F[(mi % 10)];
}
} else {
LED_BUF[2] = LED_0F[30]; LED_BUF[3] = LED_0F[30];
}
// show temp
if ((tt >= (-30)) && (tt <= 40)) {
byte ta;
if (tt < 0) {
LED_BUF[4] = LED_0F[29]; ta = abs(tt);
} else {
LED_BUF[4] = LED_0F[30]; ta = tt;
}
if (ta < 10) {
LED_BUF[5] = LED_0F[30]; LED_BUF[6] = LED_0F[(ta % 10)];
} else {
LED_BUF[5] = LED_0F[(ta / 10)]; LED_BUF[6] = LED_0F[(ta % 10)];
}
LED_BUF[7] = LED_0F[31];
} else {
LED_BUF[4] = LED_0F[30]; LED_BUF[5] = LED_0F[30]; LED_BUF[6] = LED_0F[30]; LED_BUF[7] = LED_0F[30];
}
++flShow;
}
}
}
if ((++timerGetTemp) >= CYCLE_GET_TEMP) {
timerGetTemp = 0;
// get temp and bar
sensors.requestTemperatures(); tt = sensors.getTempCByIndex(0);
if (tt == 0.00) {
tt = 99;
}
// get bmp280
pr = (bmp.readPressure() / 133.322);
}
}
// set display light
word ll = analogRead(FOTORES);
LED_PWM = map(ll, 0, 1023, 0, 7);
// show info
showLedBuf();
//--- end loop
}
- Dryundel
- Полковник
- Сообщения: 2423
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 2 раза
- Поблагодарили: 29 раз
Яркость по времени
Где хоть он лежит? Ткните пальцем.
Уже не раз про него упоминали. Все хотел посмотреть как он сделан.
Есть вот такая идея:
Дневное освещение оно утром быстро нарастает потом в течении дня медленно прибывает и убывает, а вечером быстро спадает.
Так это же чистый синус! Точней его положительная полуволна.
Берем текущее суточное время в минутах (можно даже в секундах), переводим его в угол в градусах, считаем синус, отбрасываем отрицательную полуволну, конвертируем в ШИМ и ВУАЛЯ! Вот он максимально приближенный к реальности рассвет-закат. В 6 рассвет в 18 закат.
Накидал схемку. Работает!

. .
Но рассвет и закат не всегда в 6 и 18.
Поэтому вносим суммарную поправку на широту и дату. (При желании и ее можно разложить).
А именно: Смещаем наш синус относительно ноля по амплитуде и в отрицательной зоне оказывается уже большая или меньшая часть синуса. Соответственно и отрезается не ровно половина.
Ну короче вот так:
. .
Теперь мы можем смещать рассвет и закат по времени одновременно от -6 часов до +6 часов (в минутах).
В соответствии с этим значением:
Рассвет будет позже. Закат будет раньше.
При 360 мин рассвета уже не будет - полярная ночь.
При -360 мин не состоится закат - полярный день.

.
Вот тестовый проект с обоими вариантами.
(Настраиваемая переменная только "Время смещения". Ну а текущее время в минутах подаем с часов.)
В тестовом проекте время генерируется просто счетчиком.
Как то так.

У вас нет необходимых прав для просмотра вложений в этом сообщении.
Яркость по времени
Автор набора блоков - ув. [ref=#ff8000]rw6cm[/ref], (модератор Владимир), название- "Sun location". К сожалению не тестировал/применял, потому комментировать не могу.
По собственной квартире могу сказать, что свет в комнате во многом зависит от направления куда смотрит окно. К примеру кухня на восток (максимум света до 11 часов, а спальня на запад( максимум около 17 часов летом, зимой- включаю свет даже днём в облачную погоду).. Это как пора года в зависимости от наклона оси планеты (перпендекулярности к поверхности солнечных лучей). К тому-же существенная разница при солнечной/пасмурной погоде особенно ощутимая в "глухих" коридорах или недостаточной площадью (светлостью) оконных проемов. Для себя давно решил: ставлю датчик освещённости (или фотосопротивление, несколько отчичается чувствительность от диапазона световосприятия глазом) и включение дисплея (особенно нужно для ретро ВЛИ и ГРИ) по движению "тела"

Нашёл источник: "Геопозиционирование на ардуино.".
Удачи!
- Dryundel
- Полковник
- Сообщения: 2423
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 2 раза
- Поблагодарили: 29 раз
Яркость по времени
Ух как там все серьезно.Labu559 писал(а): 20 ноя 2020, 13:54 Автор набора блоков - ув. rw6cm (модератор Владимир), название- "Sun location". К сожалению не тестировал/применял, потому комментировать не могу.
Но функция в блоке красивая. Не дилетант писал.
Пара страниц сложнейших расчетов и все на флоат.
Такая штука вероятно грузит контроллер не по детски.
А всего то:
Рассчитывает только конкретную точку времени.rw6cm писал(а): 07 ноя 2016, 12:51 На рассвете светодиод на пате arduino включится,
на закате выключится.
Ни тебе интенсивности освещения, ни возможности коррекции. (Это пр функцию. К автору блока претензий нет)

Надо будет сделать на синусе легонький ПБ и с более широким функционалом.
-
- Полковник
- Сообщения: 3358
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 13 раз
- Поблагодарили: 100 раз
- Контактная информация:
Яркость по времени
В динамическом режиме здесь.
В Вашем случае ножки D соединены или в плюс или в минус, наверное, шимом через транзистор лучше будет.
У Вас отдельные сегменты? или 4х разрядный. Если смотреть проект - отдельные. Попробуйте динамический вариант.
В Вашем случае ножки D соединены или в плюс или в минус, наверное, шимом через транзистор лучше будет.
У Вас отдельные сегменты? или 4х разрядный. Если смотреть проект - отдельные. Попробуйте динамический вариант.
Яркость по времени
Разрешите немного прокомментировать для полной ясности. Я помню Вашу тему про МАХ7219. Вы применили светодиодную ленту, в результате каждый сегмент представлял собой три последовательно соединённых светодиода. Учитывая, что падение напряжения на каждом (красном ?) светодиоде 1,6...2,5В и соответственно для 3 последовательных 5В оказалось очень впритык. Для динамической индикации на МАХ7219 для штатного блока ( в котором отсутствует опция выбора колличества разрядов) время свечения одного разряда была равна 1/8 и естественно яркости не хватало. Т.о.динамическая индикация исключается как таковая вполне обоснованно.hatul писал(а): 19 ноя 2020, 20:49 Собрал часы на МАХ7219. Днем не хватало яркости. Переделал на сдвиговые регистры 74НС595 .
...Как в данном проекте менять яркость по времени? Что добавить? Фотодиод не предлагать.
... я имел в виду решение посредством FlProg ,без добавления каких либо компонентов.
В этом проекте ув. ТС применил статическую индикацию- как единственно возможный выход исходя из...
Наиболее простой (для "без добавления каких либо компонентов") , IMHO, это "ШИМить" напрямую сдвиговые регистры 74НС595 через вывод ОЕ, который в вольном переводе описывается как: "...OE- вход переводящий выходы из высокоимпедансного состояния в рабочее. При логической единице на этом входе, выходы 74HC595 будут отключены от остальной части схемы. Это нужно например для того чтобы другая микросхема могла управлять этими сигналами. Если нужно включить в рабочее состояние микросхему, подайте логический ноль на этот вход. А если не нужно переводить выходы в высокоимпедансное состояние – можно заземлить этот вывод...". Одним выходом МК всё-же прийдётся пожертвовать.

У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Сержант
- Сообщения: 152
- Зарегистрирован: 07 янв 2019, 16:02
- Имя: Сергей
- Благодарил (а): 5 раз
Яркость по времени
[ref=#000080]aidar_i[/ref], [ref]Labu559[/ref], Спасибо за подсказки.Часы уже унес на работу,там яркость не особо нужна.Ночью там никто не спит,так что пусть светят на полную. А вот для дома изменение яркости обязательно.Когда начну делать для дома займусь этим вопросом основательно.
P.S.
P.S.
У меня по два красных светодиода. Хотя,по большому счету, это не особо важно.Labu559 писал(а): 22 ноя 2020, 02:47 каждый сегмент представлял собой три последовательно соединённых светодиода.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя