#include <LiquidCrystal_I2C.h>
// LCD-paneelin muuttujat
LiquidCrystal_I2C ledpanel(0x27,16,2);
// RGB-ledin logiikka
const int pinR = 6;
const int pinG = 5;
const int pinB = 3;
// slide-potentiometrien logiikka
const int potR = A1;
const int potG = A2;
const int potB = A3;
int readPot(int pin) {
return map(analogRead(pin), 0, 1023, 0, 255);
}
// etäisyysmittarin logiikka
float cm;
long readUltrasonicDistance(int triggerPin, int echoPin)
{
pinMode(triggerPin, OUTPUT);
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
pinMode(echoPin, INPUT);
return pulseIn(echoPin, HIGH);
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
ledpanel.init();
ledpanel.backlight();
ledpanel.setCursor(5,0);
ledpanel.print("Mitta:");
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println("Suoritus käynnissä!");
cm = 0.0344/2 * readUltrasonicDistance(9, 2);
ledpanel.setCursor(11,1);
ledpanel.print("cm");
ledpanel.setCursor(5,1);
ledpanel.print(cm, 1);
delay(100);
analogWrite(pinR, readPot(potR));
analogWrite(pinG, readPot(potG));
analogWrite(pinB, readPot(potB));
}