Ви не увійшли.
Сторінки 1
Суть проблемы в том что дисплей пишет только первый символ в любой клеточке и все.
вот код
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4); display
void setup()
{
lcd.init();
lcd.backlight();
lcd.print("Hello, world!");
}
void loop()
{
}
что делать и вообще это аппаратная проблема или системная ?
Я пытаюсь скомпилировать проект скачанный с GitHub но компилятор выдает ошибку:
D:\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFiGeneric.h:27:22: fatal error: functional: No such file or directory
#include <functional>
compilation terminated.
что делать?
Я начинаю только знакомство с ардуино много чего не знаю, поэтом требуется ваша помощь.
Вообщем хочу сделать из ардуино контроллер зажигания светодиодов. А именно чтобы были разные режимы(переключаемые кнопкой), информация о режиме (номер режима) выводился на oled экран(128х32).
Первый режим подразумевает цветомузыку.
второй режим просто переключает светодиоды по порядку.
Написал код но ничего не работает. Думаю проблема в том что функция loop выполняет все сравнения чем отнимает время зажигания светодиодов.
По идее надо как-то зациклить выполнение одного из режимов, а не нужные для режимов вычисления чтобы запускались при дополнительном условии. Но как это сделать я не знаю.
помогите.
К слову arduino uno r3
#include <OLED_I2C.h>
OLED myOLED(SDA, SCL, 8);
extern uint8_t MegaNumbers[];
uint8_t numchars;
int MicValue;
int sped;
int mode;
int correction;
int MicPin = A1;
int button = 1;
int redPin = 2;
int greenPin = 3;
int bluePin = 4;
int YellowPin = 5;
void setup() {
// put your setup code here, to run once:
pinMode(11, INPUT);
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
pinMode(YellowPin, OUTPUT);
pinMode(MicPin, INPUT);
digitalWrite(redPin, LOW);
digitalWrite(greenPin, LOW);
digitalWrite(bluePin, LOW);
digitalWrite(YellowPin, LOW);
myOLED.begin();
}
void loop() {
button = digitalRead(11);
correction = 499; //вычисление для режима 1
MicValue = analogRead(MicPin)+correction;
sped = analogRead(A2)/2 //вычисление для режима 2
if(button == 1){ //вычисления режима работы
mode++;
delay(1000);
}
if(mode == 3 && l == 1){
mode = 1;
}
if(mode == 1){ //режим 1
myOLED.setFont(MegaNumbers);
myOLED.print(" 1 ", 0, 0);
myOLED.print(" ", 0, 50);
myOLED.update();
if (MicValue > 500) {
digitalWrite(bluePin,HIGH);
delay(100);
}
if (MicValue > 515) {
digitalWrite(greenPin, HIGH);
delay(100);
}
if (MicValue > 530) {
digitalWrite(redPin, HIGH);
delay(100);
}
if (MicValue > 545) {
digitalWrite(YellowPin, HIGH);
delay(100);
}
digitalWrite(greenPin, LOW); //все гасим для стобо-эффекта
digitalWrite(redPin, LOW);
digitalWrite(bluePin,LOW);
digitalWrite(YellowPin,LOW);
delay(5);
}
if(mode == 2) { // режим 2
myOLED.setFont(MegaNumbers);
myOLED.print(" 2 ", 0, 0);
myOLED.print(" ", 0, 50);
myOLED.update();
digitalWrite(redPin, HIGH);
delay(sped);
digitalWrite(redPin, LOW);
digitalWrite(bluePin, HIGH);
delay(sped);
digitalWrite(bluePin, LOW);
digitalWrite(YellowPin, HIGH);
delay(sped);
digitalWrite(YellowPin, LOW);
digitalWrite(greenPin, HIGH);
delay(sped);
digitalWrite(greenPin, LOW);
}
}
Сторінки 1