analogRead, AnalogWrite, map, potenciômetro

Pessoal, estou fazendo um trabalho e refiz o seguinte código algumas vezes… Sou novo com arduino e não sei o que pode estar errado aí. estou usando o map corretamente? Procurei em alguns site e me pareceu que sim. Também tem o analogRead e Write, que eu também tentei recolocar em alguns momentos…

Estou usando aquela placa que é colocada em cima do arduino, com conectores brancos para plugar os led, buzzer, etc…

Desde já agradeço a ajuda!

====================================================================

#include <stdio.h>

int led = 6; // atribui o led ao pino 6
int buz = 4; // atribui o buzzer ao pino 4
int pot = A0; // atribui o potenciômetro a entrada A0
int x;
int val, valor;
void setup()
{
Serial.begin(9600);
pinMode (A0, INPUT); // A0 como entrada
pinMode (6, OUTPUT); // pino 6 como saida
pinMode (4, OUTPUT); // pino 4 como saida
}

void loop()
{
x = analogRead(A0);
val = map(valor, 0, 1023, 0, 255);

while (0 <= x <= 50.8) //enquanto o potenciômetro ler 0V - 1V, o LED recebe 0V
analogWrite(6, 0);

while (50.8 <= x <= 101.6) //enquanto o potenciômetro ler 1V - 2V, o LED recebe 1V
analogWrite(6, 50.8);

while (101.6 <= x <= 152.4) //enquanto o potenciômetro ler 2V - 3V, o LED recebe 2V
analogWrite(6, 101.6);

while (152.4 <= x <= 203.2) //enquanto o potenciômetro ler 3V - 4V, o LED recebe 3V
analogWrite(6, 152.4);

while (203.2 <= x <= 228.6) //enquanto o potenciômetro ler 4 - 4.5V, o LED recebe 4V
analogWrite(6, 203.2);

if (x > 228.6)
analogWrite (6, LOW);
analogWrite (4, HIGH);
}

eu nao acredito que analogWrite() aceite floats, ou doubles, so inteiros, entao

analogWrite(6, 203.2); nao e possivel, seria, analogWrite(6,203)