#include "Ultrasonic.h"
Ultrasonic ultrasonic(4, 7);
const int led1 = 9;
const int led2 = 10;
const int led3 = 11;
const int led4 = 12;
const int led5 = 13;
void setup()
{
pinMode (led1, OUTPUT);
pinMode (led2, OUTPUT);
pinMode (led3, OUTPUT);
pinMode (led4, OUTPUT);
pinMode (led5, OUTPUT);
Serial.begin(9600);
}
void loop()
{
float dist = ultrasonic.Ranging(CM);
Serial.println(dist);
if (dist > 40) {digitalWrite(led1, 1); digitalWrite(led2, 0); digitalWrite(led3, 0); digitalWrite(led4, 0); digitalWrite(led5, 0); }
if (dist <= 40 && dist > 30) {digitalWrite(led1, 1); digitalWrite(led2, 1); digitalWrite(led3, 0); digitalWrite(led4, 0); digitalWrite(led5, 0); }
if (dist <= 30 && dist > 20) {digitalWrite(led1, 1); digitalWrite(led2, 1); digitalWrite(led3, 1); digitalWrite(led4, 0); digitalWrite(led5, 0); }
if (dist <= 20 && dist > 10) {digitalWrite(led1, 1); digitalWrite(led2, 1); digitalWrite(led3, 1); digitalWrite(led4, 1); digitalWrite(led5, 0); }
if (dist <= 10) {digitalWrite(led1, 1); digitalWrite(led2, 1); digitalWrite(led3, 1); digitalWrite(led4, 1); digitalWrite(led5, 1); }
delay(100);
}
Получаю расстояние до ближайшего препятствия в сантиметрах и на основании этого зажигаю светодиоды.
Мне не нравится обилие if. Как можно сократить конструкцию, используя switch case?