Odbieranie bitów i przesyłanie ich na PWM

Masz problem, z którym nie możesz sobie poradzić? Pisz śmiało!
ODPOWIEDZ
Awatar użytkownika
Kuba
Młodszy majsterkowicz
Posty: 12
Rejestracja: 22 lis 2011, 13:34
Lokalizacja: Gdańsk

Odbieranie bitów i przesyłanie ich na PWM

Post autor: Kuba » 12 lis 2012, 19:58

Witajcie!:)

Mam mały problem z napisaniem kodu do mojego Arduino Mega. Stworzyłem program w języku C#, który za pomocą Serialportu raz na sekundę wysyła do Arduino liczby w postaci bitów [zmienne byte - zakres 0-255]. Liczb tych jest 12, ja natomiast meczę się niemiłosiernie, by wartość każdej z nich trafiała na odpowiadające jej wyjście PWM (sterowanie LEDami;P). Łopatologicznie myśląc w funkcji loop wystarczyłoby dla każdej zmiennej wyjścia PWM skorzystać ze schematu:

Kod: Zaznacz cały

int kolorPWM1 = Serial.read();
analogWrite(6, kolorPWM1);
int kolorPWM2 = Serial.read();
analogWrite(6, kolorPWM2);
...

i tak dalej, po kolei każdy kolejny bit byłby wczytywany -> wysyłany. Tak się jednak nie dzieje:) i tu proszę o waszą pomoc! Jak zaingerować w kod, by ten zczytywał każdy kolejno wysłany bit? Czy liczby muszą być wysyłane w postaci wektora? Liczę na skromny ratunek :)

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


svalmont
Majsterkowicz
Posty: 119
Rejestracja: 20 paź 2013, 21:22

Re: Odbieranie bitów i przesyłanie ich na PWM

Post autor: svalmont » 20 mar 2014, 23:50

Podaj cały kod
siwy2411
Młodszy majsterkowicz
Posty: 29
Rejestracja: 4 cze 2013, 14:56

Re: Odbieranie bitów i przesyłanie ich na PWM

Post autor: siwy2411 » 21 mar 2014, 10:04

spróbuj z http://arduino.cc/en/Serial/ParseInt zamiast Serial.read()
między wartościami masz znak nowej linii?
powinieneś się zastanowić czy sposób przesyłania jest na pewno dobry - nadanie 12 liczb i ich odebranie może Ci w przypadku "niezgrania" się obu programów powodować przesunięcie nastaw między pinami, może warto by jakieś flagi dodatkowe do tej komunikacji dorzucić?
svalmont
Majsterkowicz
Posty: 119
Rejestracja: 20 paź 2013, 21:22

Re: Odbieranie bitów i przesyłanie ich na PWM

Post autor: svalmont » 22 mar 2014, 00:08

a może wystarczy dać funkcje w odpowiednim miejscu? daj na początku kodu

Kod: Zaznacz cały

int kolorPWM1;
int kolorPWM1;

a w pentli dopiero

Kod: Zaznacz cały

kolorPWM1 = Serial.read();
analogWrite(6, kolorPWM1);
ODPOWIEDZ

Strony partnerskie: