serial.read и serial.parseInt
- Войдите на сайт для отправки комментариев
Втр, 07/04/2015 - 12:29
Приветствую, долго пробыл в поисках на вашем форуме в поиске своей проблемы. Возможно решение очень простое или уже есть ответ на форуме но я его либо не понял(только начал изучать) либо ненашол. Так что решил зерегестрироватся и в надежде созать тему.
вот кусок кода:
void loop() {
//фоторезистор и диод
int sense = (analogRead(sensePin)); int ledLevel = map(sense, 11, 220, 255, 0); analogWrite(ledPin, ledLevel); //вентилятор int val = Serial.parseInt(); int speedLevel = map(val, 0, 100, 0, 255); analogWrite(nlPin, speedLevel); }
Проблема в том что если использую serial.parseInt фоторезистор и диод обновляются раз в секунду тоесть плавность отсутвует, если serial.read то я могу ввести только от 0 до 9. Пробывал Serial.SetTimeout(50) но тогда двигатель даже не достигает нужного значения. Возможо как то разделить?
Все верно, плохо искали available().
Так же в сериал-монироте вместо No line ending установите Newline.
Спасибо Вам :)
Это хорошо работает если не поступает данных на ком порт, если туда летят данные то ситуация повторяется.
И еще 1 вопрос как оставить значение не сбрасывая на 0 или как сделать чтоб он сбрасывался плавно?
Это хорошо работает если не поступает данных на ком порт, если туда летят данные то ситуация повторяется.
Прочтите сообщения #1 второе предложение.
Так же вместо Newline можно ставить какой-нибудь символ в конце отправляемого значения, например: 90s, 100s, 0s.