c# и pwm
- Войдите на сайт для отправки комментариев
Пнд, 04/06/2012 - 15:02
Добрый день, форумчане. Кто может написать код на c# для pwm? Требуется регулировка яркости св. диода ползунком.
Добрый день, форумчане. Кто может написать код на c# для pwm? Требуется регулировка яркости св. диода ползунком.
В смысле "написать код на c# для pwm" ?
В смысле "написать код на c# для pwm" ?
Ну видимо нужно windoвое приложение, в котором есть ползунок. Двигая который должна менятся яркость светика на ардуине.
Но вопрос, конечно, задан "коряво".
Ну я могу написать, что дальше-то?
Что вы хотите, что-бы вам рассказали с какого бока подходить к этой задаче или что-бы выполнили эту работу за вас?
да, приложение для винды. требуется ползунок и выбор ком-порта. если сможете написать код, то будет супер) если не хочется, то расскажите как послать значения от 0 до 255 в порт.
да, приложение для винды. требуется ползунок и выбор ком-порта. если сможете написать код, то будет супер) если не хочется, то расскажите как послать значения от 0 до 255 в порт.
Неужели гугл на "C# serial port write" ничего не говорит?
Возможно и короче можно, ну нужно пробовать как сработает
Естестенно NewPWM - толжна быть типа byte. Ну или "привести" к байту нужно будет. Нанисать (byte)NewPWM.
сложновато))) я как второй день с с#) для моего примера где править?
В примере :) Где же еще. Скорее всего в обработчике события onchaned ползунка.
Ну, естественно, перед этим нужно открыть порт, и не забывать его закрыть. По нажатию кнопки или выходе из приложения.
вот код, что за значение NewPWM?
и код для дуины правилен?
вот код, что за значение NewPWM?
Ну вы задвали вопрос "как послать значения от 0 до 255". Если в ответе есть единственная непонятная вам переменная, то логично предположить что это и есть то самое передаваемое значение? ну или взять словарь и попробовать перевести имя этой переменной.
В вашем случае на ее месте должно быть то что вы хотите отослать. Скорее всего - текущая позиция вашего ползунка.
и код для дуины правилен?
Не-а... дуина должна телепатически узнать что вы, снаружи, подключили светик? Вы где-то ей сказали что 11-тый пин должен работать на выход? pinMode()
с pinMode понял :), а вот прога не компилируется..
код
ошибки:
Ошибка 1 Наиболее подходящий перегруженный метод для "System.IO.Ports.SerialPort.Write(byte[], int, int)" имеет несколько недопустимых аргументов C:\Users\Work\AppData\Local\Temporary Projects\WindowsFormsApplication1\Form1.cs 33 13 WindowsFormsApplication1
Ошибка 2 Аргумент "1": преобразование типа из "int[]" в "byte[]" невозможно C:\Users\Work\AppData\Local\Temporary Projects\WindowsFormsApplication1\Form1.cs 33 26 WindowsFormsApplication1
всё, дружище спасибо! разобрался) преобразование типов забыл.
А я предупреждал ;), что привести нужно будет ;)
Ладно, чудно что разобрались.
По хорошему нужно еще
1. Закрывать порт при выходе приложения (вдруг пользователь забыл нажать Close для порта)
2. Открытие порта и запись - обернуть в блоки try{}finally{}, что-бы корректно освобождать порт если "что-то пошло не так". И открытие/запись, по какой-то причине не удалась. Или try{}catch{} и выводить пользователю сообщению что "что-то у нас не вышло поработать с портом", а не сразу "опадать как озимые".
Если вообще "лоск" наводить, то можно еще, что-бы при старте, в setup(), ардуина сообщала "я готова". А на C# вначале ждать этого сообщения "о готовности". Уведомлять пользователя "устройство на связи" и только после этого начинать слать какие-то данные.
Да и, после приема данных, аруина может слать в ответ что-то типа "OK". Тогда C# будет знать что устройство "все еще слушает его, не умерло, не отсоединилось".
ого сколько тонкостей) если что обращусь.