#define analogInput 0 // В этой строчке задаётся аналоговый пин ардуино;
#define HighSens true // режим высокой чувствительности, достигается за счёт изменения опорного напряжения в 1.1 V,
//может быть как включено true, так и выключено — false, рекомендую включить;
#define FASTADC true // ускорение работы ADC, для Arduino Nano/Uno/Pro Mini рекомендуется включить(true );
#define Sensitivity 1024 // чувствительность, это значение не может быть больше 1024, если Ваш источник аудиосигнала
//выдаёт небольшое выходное напряжение, то можете попробовать в 2, 4 раза уменьшить это значение;
#define SampleWindow 15 // количество сэмплов, число в миллисекундах, чем оно меньше, тем шустрее дёргается стрелка,
//по умолчанию 50, но я для себя подобрал 15-20, больше уже ардуина не тянет.
int hMeter = 65; // horizontal center for needle animation
int vMeter = 85; // vertical center for needle animation (outside of dislay limits)
int rMeter = 80; // length of needle animation or arch of needle travel
int sample;
void setup() {
if (HighSens == true) { // Включить(true)/выключить(false) режим высокой чувствительности
analogReference(INTERNAL); //an built-in reference, equal to 1.1 volts on the ATmega168 or ATmega328
// and 2.56 volts on the ATmega8 (not available on the Arduino Mega)
//INTERNAL1V1: a built-in 1.1V reference (Arduino Mega only)
} else {
analogReference(DEFAULT);
}
#if FASTADC
// set prescale to 16
sbi(ADCSRA, ADPS2) ;
cbi(ADCSRA, ADPS1) ;
cbi(ADCSRA, ADPS0) ;
#endif
myOLED.begin(); // needed for SH1106 display
myOLED.clrScr(); // clears display from any library info displayed
}
void loop() {
unsigned long startMillis = millis(); // start of sample window
unsigned int PeaktoPeak = 0; // peak-to-peak level
unsigned int SignalMax = 0;
unsigned int SignalMin = Sensitivity;
while ( millis() - startMillis < SampleWindow ) {
sample = analogRead(analogInput);
if (sample < Sensitivity) {
if (sample > SignalMax) {
SignalMax = sample; // saves just the max levels
}
else if (sample < SignalMin) {
SignalMin = sample; // saves just the min levels
}
}
}
PeaktoPeak = SignalMax - SignalMin; // max - min = peak-peak amplitude
float MeterValue = PeaktoPeak * 330 / Sensitivity; // convert volts to arrow information
MeterValue = MeterValue - 34; // shifts needle to zero position
//myOLED.clrScr(); // refresh display for next step
myOLED.drawBitmap(0, 0, VUMeter, 128, 64); // draws background
int a1 = (hMeter + (sin(MeterValue / 57.296) * rMeter)); // meter needle horizontal coordinate
int a2 = (vMeter - (cos(MeterValue / 57.296) * rMeter)); // meter needle vertical coordinate
myOLED.drawLine(a1, a2, hMeter, vMeter); // draws needle
myOLED.update();
}
я Вам ссылки давал, чтоб Вы их прочли, и узнали как правильно подключать библиотеки. Там очень просто. Хинт: Вы #include написали, а что именно #include - не написали.
Когда мы выходим на берег, то девочки радостно стонут.
И мы начинаем рассказы про разные трудности моря.
Но хватит! Завыла сирена. И мы быстро прыгаем в воду.
Мы жить не привыкли на суше, мы любим нырять и купаться.
Аквалангисты - это не игра!
И взрослые знают, и дети - мы радость творим на планете.
Аквалангисты - это хорошо!
Батальон - 3-4 роты + штаб и отдельные спецы (оружейник, связист, снайперы и т.п., минометный взвод (опционально), иногда - ПВО и истребители танков (ПТБ), командует капитан или майор.
Полк - 3-6 батальонов, штаб, полковая артиллерия, ПВО, ПТБ, командует подпол, полковник.
exit status 1
ошибка компиляции для ардуино нано
Зачем код? В коде все хорошо. Ошибка ведь - компиляции )))))
/*
Статья "Цифровой VU meter с OLED дисплеем. Arduino проект для начинающих":
http://www.techn0man1ac.info/arduino/diy-digital-vumeter-oled-and-arduino
Видео "Arduino проект для начинающих. VU meter с OLED дисплеем."
https://youtu.be/qoLsynwssLI
By Techn0man1ac
За основу взят вот этот проект:
https://forum.arduino.cc/index.php?topic=403234.0
*/
#include // Library: OLED_I2C http://www.rinkydinkelectronics.com/library.php?id=79
OLED myOLED(SDA, SCL, 8);
#define analogInput 0 // В этой строчке задаётся аналоговый пин ардуино;
#define HighSens true // режим высокой чувствительности, достигается за счёт изменения опорного напряжения в 1.1 V,
//может быть как включено true, так и выключено — false, рекомендую включить;
#define FASTADC true // ускорение работы ADC, для Arduino Nano/Uno/Pro Mini рекомендуется включить(true );
#define Sensitivity 1024 // чувствительность, это значение не может быть больше 1024, если Ваш источник аудиосигнала
//выдаёт небольшое выходное напряжение, то можете попробовать в 2, 4 раза уменьшить это значение;
#define SampleWindow 15 // количество сэмплов, число в миллисекундах, чем оно меньше, тем шустрее дёргается стрелка,
//по умолчанию 50, но я для себя подобрал 15-20, больше уже ардуина не тянет.
// defines for setting and clearing register bits
#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif
extern uint8_t VUMeter[];
int hMeter = 65; // horizontal center for needle animation
int vMeter = 85; // vertical center for needle animation (outside of dislay limits)
int rMeter = 80; // length of needle animation or arch of needle travel
int sample;
void setup() {
if (HighSens == true) { // Включить(true)/выключить(false) режим высокой чувствительности
analogReference(INTERNAL); //an built-in reference, equal to 1.1 volts on the ATmega168 or ATmega328
// and 2.56 volts on the ATmega8 (not available on the Arduino Mega)
//INTERNAL1V1: a built-in 1.1V reference (Arduino Mega only)
} else {
analogReference(DEFAULT);
}
#if FASTADC
// set prescale to 16
sbi(ADCSRA, ADPS2) ;
cbi(ADCSRA, ADPS1) ;
cbi(ADCSRA, ADPS0) ;
#endif
myOLED.begin(); // needed for SH1106 display
myOLED.clrScr(); // clears display from any library info displayed
}
void loop() {
unsigned long startMillis = millis(); // start of sample window
unsigned int PeaktoPeak = 0; // peak-to-peak level
unsigned int SignalMax = 0;
unsigned int SignalMin = Sensitivity;
while ( millis() - startMillis < SampleWindow ) {
sample = analogRead(analogInput);
if (sample < Sensitivity) {
if (sample > SignalMax) {
SignalMax = sample; // saves just the max levels
}
else if (sample < SignalMin) {
SignalMin = sample; // saves just the min levels
}
}
}
PeaktoPeak = SignalMax - SignalMin; // max - min = peak-peak amplitude
float MeterValue = PeaktoPeak * 330 / Sensitivity; // convert volts to arrow information
MeterValue = MeterValue - 34; // shifts needle to zero position
//myOLED.clrScr(); // refresh display for next step
myOLED.drawBitmap(0, 0, VUMeter, 128, 64); // draws background
int a1 = (hMeter + (sin(MeterValue / 57.296) * rMeter)); // meter needle horizontal coordinate
int a2 = (vMeter - (cos(MeterValue / 57.296) * rMeter)); // meter needle vertical coordinate
myOLED.drawLine(a1, a2, hMeter, vMeter); // draws needle
myOLED.update();
}
ну так библиотеку подключить надо, просто кинуть ссылку на нее не достаточно! :))
так поключил зип библиотеку и все равно ошибка
теперь надо к коду ее подключить
а на кой ляд Вам VU meter ?
а как я вот не знаю пока
https://www.arduino.cc/reference/en/language/structure/further-syntax/in...
https://doc.arduino.ua/ru/prog/Include
благодарю вас
запятой вроде нет но ошибка остается
запятой вроде нет но ошибка остается
И прочитайте, плз, как правильно вставлять код в свои посты.
добавал библиотеку
#include
а потом вес код вниз
/*
Статья "Цифровой VU meter с OLED дисплеем. Arduino проект для начинающих":
http://www.techn0man1ac.info/arduino/diy-digital-vumeter-oled-and-arduino
Видео "Arduino проект для начинающих. VU meter с OLED дисплеем."
https://youtu.be/qoLsynwssLI
By Techn0man1ac
За основу взят вот этот проект:
https://forum.arduino.cc/index.php?topic=403234.0
*/
#include // Library: OLED_I2C http://www.rinkydinkelectronics.com/library.php?id=79
что тут неправильно?
а потом вес код вниз
#include
так получилось у меня
так получилось у меня
а должно было получиться #include <OLED_I2C.h>
и меня так же
#include
#include
да, там что-то намучено с массивом VUMeter. У меня тоже не компилится.
вы извините меня за возможное непонимание.Новичек!
вовремя ты, новичек, программировать взялся.
это интерес
тут счас у большинства народа статус поменяется. как раз на exit status 1.
это как раньше построй радиостанцию на 5.6 ггц. зачем ? с кем связь устанавливать.да еще с намеренной ошибкой
вы извините меня за возможное непонимание.Новичек!
Хм ...
Зарегистрирован:24.10.2016
Больше на ветерана похож.
ветеран борьбы с заградительными помехами в каналах АСУ звена полк-батальон
ветеран борьбы с заградительными помехами в каналах АСУ звена полк-батальон
Когда мы выходим на берег, то девочки радостно стонут.
И мы начинаем рассказы про разные трудности моря.
Но хватит! Завыла сирена. И мы быстро прыгаем в воду.
Мы жить не привыкли на суше, мы любим нырять и купаться.
Аквалангисты - это не игра!
И взрослые знают, и дети - мы радость творим на планете.
Аквалангисты - это хорошо!
Батальон - 3-4 роты + штаб и отдельные спецы (оружейник, связист, снайперы и т.п., минометный взвод (опционально), иногда - ПВО и истребители танков (ПТБ), командует капитан или майор.
Полк - 3-6 батальонов, штаб, полковая артиллерия, ПВО, ПТБ, командует подпол, полковник.