индикатор уровня сигнала стерео

Ответить
lsm
Рядовой
Сообщения: 34
Зарегистрирован: 16.12.2018{, 21:58}
Репутация: 0
Имя: serg

индикатор уровня сигнала стерео

#1

Сообщение lsm » 29.03.2020{, 15:30}

Прошу вашей помощи!
Нужно с этого

#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);// RS,E,D4,D5,D6,D7
byte a1[8]={
0b11011,0b11011,0b11011,0b11011,0b11011,0b11011,0b11011,0b11011};
byte a2[8]={
0b11000,0b11000,0b11000,0b11000,0b11000,0b11000,0b11000,0b11000};
byte a3[8]={
0b00011,0b00011,0b00011,0b00011,0b00011,0b00011,0b00011,0b00011};
byte znak_r[8]={ // R
0b11110,0b11011,0b11011,0b11110,0b11100,0b11110,0b11011,0b11001};
byte znak_l[8]={ // L
0b11000,0b11000,0b11000,0b11000,0b11000,0b11000,0b11011,0b11111};
int u_r,u_l,i=1,x,u_maxr,u_maxl,z,z1,u_r0[15],u_l0[15];
unsigned long time1;
void setup(){
analogReference(INTERNAL);
lcd.begin(16, 2);// LCD 16X2
lcd.createChar(0,a1);
lcd.createChar(1,a2);
lcd.createChar(2,znak_r);
lcd.createChar(3,znak_l);
lcd.createChar(4,a3);
pinMode(A0,INPUT);
pinMode(A2,INPUT);
}

void loop(){
lcd.setCursor(0,0);// R
lcd.write((uint8_t)2);
lcd.setCursor(0,1);
lcd.write((uint8_t)3);// L

u_r = analogRead(A0); // измерение R
u_l = analogRead(A2); // измерение L

for(int z=1,z1=0,z2=30;z<=15;z++,z1=z1+30,z2=z2+30){ // l+r
if(u_l>z1){
lcd.setCursor(z,1);
lcd.write((uint8_t)1);
}
if(u_r>z1){
lcd.setCursor(z,0);
lcd.write((uint8_t)1);
}
if(u_l>z2){
lcd.setCursor(z,1);
lcd.write((uint8_t)0);
}
if(u_r>z2){
lcd.setCursor(z,0);
lcd.write((uint8_t)0);
}
}

i++;
if(i<=15){
u_l0=u_l;
u_r0=u_r;
}
else{
i=1;
}
if(i==15){
u_maxr=0;
u_maxl=0;
for(x=1;x<=15;x++){
u_maxl=max(u_maxl,u_l0[x]);
u_maxr=max(u_maxr,u_r0[x]);
}
}

if(u_maxl<=u_l){
u_maxl=u_l;
}
if(u_maxr<=u_r){
u_maxr=u_r;
}

for(z=1,z1=0;z<=15;z++,z1=z1+30){
if(u_maxl > z1 && u_maxl <= z1+15){
lcd.setCursor(z,1);
lcd.write((uint8_t)1);
}
if(u_maxl > z1+15 && u_maxl <= z1+30){
lcd.setCursor(z,1);
lcd.write((uint8_t)4);
}

if(u_maxr > z1 && u_maxr <= z1+15){
lcd.setCursor(z,0);
lcd.write((uint8_t)1);
}
if(u_maxr > z1+15 && u_maxr <= z1+30){
lcd.setCursor(z,0);
lcd.write((uint8_t)4);
}
}
delay(75);
lcd.clear();
}



Создать болк

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

индикатор уровня сигнала стерео

#2

Сообщение Phazz » 29.03.2020{, 20:45}

lsm, Пробуйте
Вложения
level_sound_(CODE).ubi
(10.06 КБ) 43 скачивания

lsm
Рядовой
Сообщения: 34
Зарегистрирован: 16.12.2018{, 21:58}
Репутация: 0
Имя: serg

индикатор уровня сигнала стерео

#3

Сообщение lsm » 30.03.2020{, 15:47}

Выдает ошибку

lsm
Рядовой
Сообщения: 34
Зарегистрирован: 16.12.2018{, 21:58}
Репутация: 0
Имя: serg

индикатор уровня сигнала стерео

#4

Сообщение lsm » 30.03.2020{, 16:03}

Исправил
u_l0=u_l;
u_r0=u_r;
Вложения
level_sound_1(CODE).ubi
(10.15 КБ) 45 скачиваний

lsm
Рядовой
Сообщения: 34
Зарегистрирован: 16.12.2018{, 21:58}
Репутация: 0
Имя: serg

индикатор уровня сигнала стерео

#5

Сообщение lsm » 30.03.2020{, 16:27}

Я извеняюсь,а можна переделат дисплей по I2C,зарание ОГРОМНОЕ спасибо

vovka1973
Майор
Сообщения: 1060
Зарегистрирован: 14.02.2016{, 14:16}
Репутация: 42
Откуда: kazahstan

индикатор уровня сигнала стерео

#6

Сообщение vovka1973 » 30.03.2020{, 17:37}

/
Последний раз редактировалось vovka1973 30.03.2020{, 18:22}, всего редактировалось 2 раза.
Изображение

lsm
Рядовой
Сообщения: 34
Зарегистрирован: 16.12.2018{, 21:58}
Репутация: 0
Имя: serg

индикатор уровня сигнала стерео

#7

Сообщение lsm » 30.03.2020{, 18:21}

Вложения
level_sound_I2C_(CODE).ubi
(21.1 КБ) 103 скачивания

Ответить

Вернуться в «Помогите, а то я "нимагу"»