#1 Апаратні питання » Проблема с LCD 20x4 I2C » 2018-03-04 12:08:54

Nikita_janio
відповідей: 2

Суть проблемы в том что дисплей пишет только первый символ в любой клеточке и все.
вот код

#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()
{
}

что делать и вообще это аппаратная проблема или системная ?

#2 Програмування Arduino » Помогите с ESP8266WiFi » 2018-02-17 01:32:10

Nikita_janio
відповідей: 1

Я пытаюсь скомпилировать проект скачанный с GitHub но компилятор выдает ошибку:

D:\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFiGeneric.h:27:22: fatal error: functional: No such file or directory
#include <functional>
compilation terminated.

что делать?

#3 Проекты » Помогите разобраться с ардуино » 2017-12-03 12:24:58

Nikita_janio
відповідей: 4

Я начинаю только знакомство с ардуино много чего не знаю, поэтом требуется ваша помощь.

Вообщем хочу сделать из ардуино контроллер зажигания светодиодов. А именно чтобы были разные режимы(переключаемые кнопкой), информация о режиме (номер режима) выводился на 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); 
      }
    }
    
    
    
    

Підвал форуму