• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Lcd I2C
#1
Kod: Zaznacz cały

Kod:
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);



int Control1 = 0;
int Control2 = 0; 
      //3//
int ControlAnt1 = 0;
int ControlAnt2 = 0;
      //3//
int pot1 = 0;
int sensorPIN = A0;
int sensorValue = 0;


int push1 = LOW, push2 = LOW, push3 = LOW, push4 = LOW, push5 = LOW, push6 = LOW; //
int edoant1 = LOW, edoant2 = LOW, edoant3 = LOW, edoant4 = LOW, edoant5 = LOW, edoant6 = LOW;
int edo1 = 0, edo2 = 0, edo3 = 0, edo4 = 0, edo5 = 0, edo6 = 0;  

void setup() {  
  Serial.begin(115200);
 
  lcd.begin(16,2); 
  lcd.setCursor(1,0);
  lcd.print(" W E L C O M ");
  lcd.setCursor(3,1);
  lcd.print("F E N D E R");
  delay(9000);
 

 
  
  
  

 
  pinMode(22,OUTPUT);
  pinMode(23,OUTPUT);
  pinMode(24,OUTPUT);
  pinMode(25,OUTPUT);
 

  pinMode(40, OUTPUT);
  pinMode(41, OUTPUT);

}
  
void loop() {
  push1 = digitalRead(22);
  push2 = digitalRead(23);
  push3 = digitalRead(24);
  push4 = digitalRead(25);
  pot1 = analogRead(A0);
 
 
  
  

  Control1 = map(pot1, 0,1023,0, 127);

  /////------VOLUME-----///
  
  if (Control1 != ControlAnt1) {
    Serial.write(176);
    Serial.write(14);
    Serial.write(Control1);
    ControlAnt1 = Control1;
    sensorValue = analogRead(A0);
    sensorValue = sensorValue / 10.22;
  lcd.clear();
  lcd.setCursor(5,0);
  lcd.print ("VOLUME");  
  lcd.setCursor(6,1); 
  lcd.print(sensorValue);
  lcd.print("%");
  lcd.print(" ");
  delay(5000);
   lcd.clear(); 

  
  
  }

  if (push4 == HIGH&& edoant4 == LOW) {
   edo4 = 1 - edo4;
   Serial.write(176);
   Serial.write(20);
   Serial.write(127); // ON
   edoant4 = push4;
      if(edo4==1) {
        
   lcd.setCursor(3,0);
   lcd.print("         ");
   lcd.setCursor(6,1);
  lcd.print(" OK ");
  delay(1000);
  lcd.print("    ");   
 

  
  }



 
 
  
  
  

//////-----------  Przycisk 1 ----------------


if (push1 == HIGH&& edoant1 == LOW) {
   
   edo1 = 1 - edo1;
   Serial.write(176);
   Serial.write(16);
   Serial.write(127); // ON
   edoant1 = push1;
      if(edo1==1) {
        
         lcd.setCursor(3,0);
   lcd.print("StompComp");
   lcd.setCursor(6,1);
  lcd.print(" OK ");
  digitalWrite(40, HIGH);
  delay(1000); 
  lcd.clear();
  
  
  }            
  
                   
                                 
                                  
                             else{   
                    digitalWrite(40, LOW);
    
   lcd.setCursor(3,0);
   lcd.print("StompComp");
   lcd.setCursor(6,1);
  lcd.print("OFF"); 
  delay(1000);
  lcd.clear();
                            }  
         
}

if (push1 == LOW && edoant1 == HIGH) 
Serial.write(176);
Serial.write(16);
Serial.write(0); // OFF
edoant1 = push1;


//////-----------  Przycisk 2 ----------------


if (push2 == HIGH && edoant2 == LOW) {
   
   edo2 = 1 - edo2;
   Serial.write(176);
   Serial.write(17);
   Serial.write(127); // ON
   edoant2 = push2;
      if(edo2==1) {
        
         lcd.setCursor(3,0);
   lcd.print("Flanger");
   lcd.setCursor(6,1);
  lcd.print("ON");
  digitalWrite(41, HIGH);
  delay(2000);
  lcd.clear();
  }

               else{   
                    digitalWrite(41, LOW);
    
   lcd.setCursor(3,0);
   lcd.print("Flanger");
   lcd.setCursor(6,1);
  lcd.print("OFF"); 
  delay(2000);
  lcd.clear();
                            }  
         
}

if (push2 == LOW && edoant2== HIGH) 
Serial.write(176);
Serial.write(17);
Serial.write(0); // OFF
edoant2 = push2;

/////-------------------------Przycisk 3------------------

if (push3 == HIGH && edoant3 == LOW) {
   
   edo3 = 1 - edo3;
   Serial.write(176);
   Serial.write(18);
   Serial.write(127); // ON
   edoant3 = push3;
      if(edo3==1) {
        
         lcd.setCursor(3,0);
   lcd.print("HAW");
   lcd.setCursor(6,1);
  lcd.print("ON");
  digitalWrite(42, HIGH);
  delay(2000);
  lcd.clear();
  }

               else{   
                    digitalWrite(42, LOW);
    
   lcd.setCursor(3,0);
   lcd.print("HAW");
   lcd.setCursor(6,1);
  lcd.print("OFF"); 
  delay(2000);
  lcd.clear();
                            }  
         
}

if (push3 == LOW && edoant3== HIGH) 
Serial.write(176);
Serial.write(18);
Serial.write(0); // OFF
edoant3 = push3;
  }
}
                          



Komunikuje sieprzez I2C .podłaczone do pinów 20 ,21 oraz 5v i GND.
Po przekreceniu potencjometru pojawił sie napis VOLUME iles tam procent i chciałbym żeby po czasie znikną napis a pojawił sie np.. inny lub zrobić przycisk taki zatwierdzający daną wartoś i powraca np do WELCOM..
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości