Значение потенциометра на дисплей ТМ1637, дёргаются цифорки

Пробуй питание 5в напрямую воткнуть в АЦП. Пляшут или нет показания?
А соединения не Дюпонтами случаем?
Три ``` до и 3 после кода.

Вот примерно по такой схеме, что слева внизу у меня в одном проекте подключено 43 потенциометра (естественно, не все к А0, а каждый к своему, включая 4 корпуса внешних АЦП). Так вот, за сутки ни по одному каналу из 43 не происходит ни единого переключения хотя бы на одну единицу. Единственная разница: каждый вход зашунтирован конденсатором 0.1мкФ.
Колись, что ты в схеме сделал не так?

1 лайк

Скорей всего, это китайская нано корявая. т.к. делал на уно, работало лучше.

Смелое предположение.

Напрямую - скачут.
Да китайские проводочки гейские)

#define CLK 2
#define DIO 3
#define BUZ 4
#include "GyverTM1637.h"

GyverTM1637 disp(CLK, DIO);
const int potPin = A0;

void setup() {
  Serial.begin(9600);
  wakeUp();
  disp.clear();
  disp.brightness(7); // яркость, 0 - 7 (минимум - максимум)
  byte digs[4] = {0, 0, 0, 0};
  disp.twist(digs, 40);     // скорость прокрутки 100
  delay(500);
}
void loop() {
 amperDisp(); 
}

void wakeUp() {
  tone(BUZ, 400);
  delay(200);
  noTone(BUZ);
  tone(BUZ, 600);
  delay(200);
  noTone(BUZ);
  }

void amperDisp(){
  int potValue = map(analogRead(potPin), 0, 1023, 10, 130); 
  disp.displayInt(potValue); // выводим значение на дисплей
  delay(200); 
}

void alarm(){

}

каднёры ставил и тк и этак, в фирит совал провод.

Осталось фото сборки выложить.

лови, сёдня день сварщика, ты после Натахи второй )))

#define CLK 2
#define DIO 3
#define BUZ 4
#include "GyverTM1637.h"

GyverTM1637 disp(CLK, DIO);
const int potPin = A0;

void setup() {
  Serial.begin(9600);
  wakeUp();
  disp.clear();
  disp.brightness(7); // яркость, 0 - 7 (минимум - максимум)
  byte digs[4] = {0, 0, 0, 0};
  disp.twist(digs, 40); // скорость прокрутки 100
  delay(500);
}
void loop() {
  amperDisp();
}

void wakeUp() {
  tone(BUZ, 400);
  delay(200);
  noTone(BUZ);
  tone(BUZ, 600);
  delay(200);
  noTone(BUZ);
}

void amperDisp() {
  int potValue1 = analogRead(potPin);
  potValue1 = 0;
  for (int i = 0; i < 10; i++) {
    potValue1 =  potValue1 + analogRead(potPin);
    delay(5);
  }
  potValue1 =   potValue1 / 10;
  potValue1 = map(analogRead(potPin), 0, 1023, 1, 26);
  int potValue = map(potValue1, 1, 26, 10, 130);
  disp.displayInt(potValue);
}

void alarm() {

}

5в не на Vin случаем питаешь? А то последнее время это модно стало…

Не, в USB, но от телефонной зарядки.

Блин, ну конденсатор можт тогда на 100-200-500-1000мкФ. Я хз. Выкладывай фото этого чуда. Зарядники часто грешать очень сильными пульсациями.

Не гоните коней. Это было предположение. Может там нормальный БП. С выходным током 0.05А и когда появляются 6/8/9 - напряжение автоматически снижается, цифры меняются и так по кругу. :neutral_face:

1 лайк

Хоть одна умная мысль! Конечно же, китайцы в штаны нагадили :frowning:

1 лайк

Что за сарафанное радио?) Питать пробовал от компа, лабараторника и батареи. Кандёры ставил всякие. И на кой чёрт на лемку подавать 5в чтоб получить 5в?)

у батареи тоже?)

Я про это ещё в самом начале писал, после теста с уно.

Да всё равно дёргается) Дискретизация цифорок уменьшилась, а кривляние осталось с 1 на 5 скачет сразу)
Тут надо делать ветвление. пока ацп в определённых рамках дёргается, функция с выводом отдельно крутится и показывает значение со внутренней переменной, как ток изменение на ацп выше, то на ту переменную кидается значение и дисплей показывает новые цифорки. Вчера пробовал, но пока не дошло как это прально сделать) Во у чувака из интенетов тож там дёргается. https://youtu.be/xGBFFYNLAds

Эта шоль Натаща?)

Кароч поставил поц вплотную сигнальным выводом к ацп и питание жирными короткими проводами. проблема решена. Буду знать, что для таких дел китайские радужные(гейские) проводки не годятся))

Ты с поцем поосторожнее. Смотри что бы током не долбануло.