#include "mbed.h"
AnalogIn adc(P0_23); // Pretpostavljam da je P0_23 ADC pin na vašem mikrokontroleru
PwmOut led0(P0_2);
PwmOut led1(P0_3);
PwmOut led2(P0_4);
PwmOut led3(P0_5);
PwmOut led4(P0_6);
PwmOut led5(P0_7);
PwmOut led6(P0_8);
PwmOut led7(P0_9);
PwmOut myleds[] = { led0, led1, led2, led3, led4, led5, led6, led7 };
int main() {
for (int i = 0; i < 8; i++) {
myleds[i].period(0.02); // Postavljanje perioda PWM-a na 20 ms (50 Hz)
}
while (true) {
float fot = adc.read(); // Čitanje ADC vrijednosti (0.0 do 1.0)
int max = 65007;
int min = 512;
float value = (max - min) / 8.0;
int i = 0;
while (i < 8) {
if (fot * max >= i * value && fot * max < (i + 1) * value) {
int j = 0;
while (j < i) {
myleds[j] = (fot * max) / (1 << (i - j - 1)) / max;
j++;
}
while (j < 8) {
myleds[j] = 0;
j++;
}
break;
}
i++;
}
ThisThread::sleep_for(20ms);
}
}