Margo_CH18_Tesla — Arduino Uno simulation

An interactive Arduino Uno circuit simulation you can run free in your browser on Velxio, by robomozyr.

Components

Sketch code

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd_speed (0x27, 16, 2);
LiquidCrystal_I2C lcd_info(0x20, 20, 4);

int i;
int a;
int speed;
int d;
int rezim;

void setup(){
    lcd_speed.init();
    lcd_speed.backlight();  
    lcd_info.init();
    lcd_info.backlight();
    pinMode(2, INPUT_PULLUP);
    pinMode(3, INPUT_PULLUP);
    pinMode(12, OUTPUT);

}

void loop(){
    speeed();
    delay(100);
     lcd_speed.clear(); 
     lcd_info.clear();  
     updateLcdInfo(); 

}

void speeed(){
i = analogRead(1);
    speed = map(i, 0, 1023, 0, 150);
    lcd_speed.print(speed);
    lcd_speed.setCursor(4,0);
    lcd_speed.print("km/h");
    lcd_speed.setCursor(0,1);
    a  = speed*0.6;
    lcd_speed.print(a);
    lcd_speed.setCursor(4,1);
    lcd_speed.print("m/h");
}

void updateLcdInfo(){
    lcd_info.print("Fari: ");
    if(digitalRead(2)){
        digitalWrite(12,1);
        lcd_info.print("ON");
        
    }
    else {
        digitalWrite(12,0);
        lcd_info.print("OFF");
        }
    
    lcd_info.setCursor(0,2);
    lcd_info.print("Conditioner: ");
    if(digitalRead(3)){
      lcd_info.print("ON");    
    }
    else {
        lcd_info.print("OFF");
        }
    lcd_info.setCursor(0,3);
    lcd_info.print("Peredacha: ");

   if(speed < 20) lcd_info.print("1");
   if(speed < 40 && speed > 20) lcd_info.print("2");
   if(speed < 60 && speed > 40) lcd_info.print("3");
   if(speed < 90 && speed > 60) lcd_info.print("4");
   if(speed > 90) lcd_info.print("5");

   d = analogRead(2);
   rezim =  map(d, 0, 1023, 0, 3);
   lcd_info.setCursor(0,1);
   lcd_info.print("Rezim: ");
   if(rezim == 0) lcd_info.print("R");
   if(rezim == 1) lcd_info.print("sport");
   if(rezim == 2) lcd_info.print("eco");
   if(rezim == 3) lcd_info.print("trasa");

   
}

More projects by robomozyr