Здравствуйте! Дело в том, что я собрала эту лампу, но у меня какая-то проблема с программой. Логика моя такова: я считаю расстояние до объекта с помощью сонара и библиотеки ультрасоник, затем из единицы вычитаю расстояние (в сантиметрах), делённое на 400(радиус действия сонара, тоже в сантиметрах). Эту штуку я обозвала part. Далее на светодиодах устанавливаю яркость (через analogWrite) на 255*part. Таким образом если человек находится на расстоянии 3-х метров от лампы, то светодиоды горят лишь на 25 процентов от полной яркости. И проблема именно с рассчётами вот этого коэффициента part. Монитор порта пишет, что этот коэффициент равен 1,00, а иногда 0,00, но никак не дробные значения, которые мне нужны (хотя дистанция правильна рассчитывается). Так вот как эту проблему решить? Буду очень благодарна Вот код: #include <Ultrasonic.h> #define LED1 5 #define LED2 3 #define LED3 9 #define LED4 6 #define trig 12 #define echo 13 float part; Ultrasonic sonar1(trig,echo); void setup() { Serial.begin(9600); pinMode(trig,OUTPUT); pinMode(echo, INPUT); pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); pinMode(LED3, OUTPUT); pinMode(LED4, OUTPUT); Serial.println("start"); } void loop() { if (analogRead(A1)<150) { int dist = sonar1.Ranging(CM); Serial.print("dist= "); Serial.println(dist); part = (1-(dist/400)); Serial.print("part="); Serial.println(part, 2); analogWrite(LED1, part*255); analogWrite(LED2, part*255); analogWrite(LED3, part*255); analogWrite(LED4, part*255); } }