Помогите oled.setContrast

Borsan

✩✩✩✩✩✩✩
9 Сен 2020
3
0
Оформи код соответствующим тэгом, см. Правила
Добрый день. Я новичок в ардуино, помогите разобраться с кодом. Делаю вольтметр на авто и хочется чтоб при включении габаритов, яркость пикселей уменбшалось.
Есть код -

#include <GyverOLED.h>
GyverOLED<SSD1306_128x64, OLED_NO_BUFFER> oled; // SCL-A5, SDA-A4

extern uint8_t akb[]; // иконка "Аккумулятор"
extern uint8_t mazda[]; // логотип используемый при запуске
int BrighPin = 7; // пин регулировки яркости дисплея
void setup() {
pinMode(BrighPin, INPUT); // задаем 7 пин регулятора подсетки дисплея как вход
oled.init(); // инициализация
oled.clear(); // стираем все с дисплея
startup();
}

void loop() {
brigh();
}

void startup () {
oled.clear(); // стираем все с дисплея
oled.drawBitmap(0, 0, mazda, 128, 64);
oled.update(); // обновляем информацию на дисплее
delay(5000);
oled.clear(); // стираем все с дисплея
oled.rect(0, 86, 128, 36); // прямоугольник (x0,y0,x1,y1)
}

void brigh () {
if (digitalRead(BrighPin) == HIGH) // создаем условие для притухания подсветки дисплея при включении ближнего света. Если 12В с индикатора ближнего света приходит на 7 пин, то
{
oled.setContrast(1); // уменьшаем подсветку дисплея
}
else
{
oled.setContrast(255); // оставляем яркость на максимальном уровне
}
}


Но беда в том, что если на 7 пин не подавать напряжение все моргает, если подаю, то тускнеет.
 

Borsan

✩✩✩✩✩✩✩
9 Сен 2020
3
0
@poty,Через сопротивление 10к, но сейчас , тестово, запитываю от ардуинки 3.3в. Но даже убрав сопротивление и не подкидывая + , он продолжает мерцать, как старый телевизор, идет рябь
 
Изменено:

poty

★★★★★★✩
19 Фев 2020
3,167
926
Какой МП используете?
@Borsan, то есть, Вы подключаете +12В через сопротивление (последовательное) к порту МП? Я ещё удивляюсь, как у Вас всё работает до сих пор. Нужно использовать как минимум резистивный делитель, в автомобиле я бы также использовал какой-либо ограничивающий амплитуду элемент (стабилитрон хотя бы), чтобы убрать импульсную составляющую.
По поводу тестового подключения: от выходного порта 3,3В подаётся напряжение напрямую на порт МП? Как выключаете это напряжение?
В целом, скорее всего, нужно пин 7 притянуть к земле, допустим, сопротивлением в 1-10 кОм. Но если Вы не отключаете "ардуинку 3,3В" от тестируемого МП (т.е., задаёте лог. 0 на выходе "ардуинки 3,3В", а не отключаете его физически), то это предположение может не сработать и нужно разбираться дальше.
 
  • Лойс +1
Реакции: Borsan

Borsan

✩✩✩✩✩✩✩
9 Сен 2020
3
0
@poty, Все !!! Спасибо огромное!!!! Помогли! Подтянул землю через 10к и все заработало как надо ! Спасибо огромное, хорошо что пока на столе и испытываю на малом токе, поставлю стабилитрон на 3,3 вольта и будет счастье.