Вверх ↑
Этот топик читают: Гость
Ответов: 195
Рейтинг: 7
#1: 2017-07-29 15:54:27 ЛС | профиль | цитата
Привет всем, столкнулся с такой ситуацией хотел сделать робота управляемого через комп и используя сом порт так как ничего другого не имеется и так собрал ардуинку подключил питание и думаю а давайка я программку сделаю для начала и заставлю ардуинку что то делать использую собственную программу управления сделанную в hiasme в общем все подключил все сделал запустил программку отправлять данные все шикарно но вот когда я захотел от нее получить данные отправленные ей то в результате я получаю не понятно что, через монитор порта в программе Arduino все в порядке все как надо отображается а вот в моей программке не хочет я пробывал ковертировать данные в разные типы но что то ничего не получается, пожалуйста помогите разобраться как правильно принимать и отправлять данный arduino через com порт
вот программа



Add(Delete,11141188,343,196)
{
 Count=3
 link(onDelete,5608310:doValue,[])
 link(Str,15271740:String,[])
}
Add(MainForm,2953706,42,35)
{
 Width=620
 Height=621
 link(onDeactivate,7883304:In,[])
 link(onCreate,932892:In,[])
}
Add(RichEdit,14402188,553,343)
{
 Left=25
 Top=55
 Width=205
 Height=530
}
Add(Edit,7689019,154,343)
{
 Left=125
 Top=15
 Width=230
 link(onEnter,1758540:doWrite,[])
}
Add(COMEX,1758540,399,336)
{
 Port=2
 StopBits=1
 link(onRead,14402188:doAdd,[])
 link(Port,8913:Var,[])
}
Add(EnumCOM,7811162,273,133)
{
 link(onEnumPorts,15271740:doAdd,[])
}
Add(Hub,7444167,231,126)
{
 link(onEvent1,15271740:doClear,[(255,132)(255,146)])
 link(onEvent2,7811162:doEnumPorts,[])
}
Add(ComboBox,15271740,336,133)
{
 Left=240
 Top=45
 Width=125
 Height=21
 link(onClick,13172461:In,[])
}
Add(Memory,5608310,399,196)
{
 link(onData,3036277:In,[])
}
Add(LineBreak,691842,315,329)
{
 Caption="connect"
 link(Out,1758540:doOpen,[(384,335)(384,342)])
 Primary=[3036277,126,-133]
}
Add(LineBreak,7832411,259,343)
{
 Caption="close"
 link(Out,1758540:doClose,[])
 Primary=[7883304,-175,-301]
}
Add(LineBreak,15855028,154,126)
{
 Caption="start"
 link(Out,7444167:doEvent1,[])
 Primary=[932892,0,-77]
}
Add(LineBreak,16281109,399,238)
{
 Caption="NUM_com"
 Type=1
 link(Data,5608310:Value,[])
 Primary=[8913,0,70]
}
Add(LineBreak,7560633,294,196)
{
 Caption="sel"
 link(Out,11141188:doDelete,[])
 Primary=[13172461,84,-56]
}
вот исходник для ардуино он простой для проверки


void setup() {
    Serial.begin(9600);
}
 
 
void loop() {
   while (Serial.available() == 0);
    
        int val = Serial.read() - '0';
 
        // отсылаем то, что получили
      
        Serial.println(val);
    }
вот скрин

это моя программа http://prntscr.com/g1skko
а это среда arduini http://prntscr.com/g1slay

Редактировалось 3 раз(а), последний 2017-07-29 16:41:54
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#2: 2017-07-29 16:14:41 ЛС | профиль | цитата
За 6 лет на форуме не научиться пользоваться тегами code - это надо очень постараться.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8937
Рейтинг: 824
#3: 2017-07-29 16:23:25 ЛС | профиль | цитата
hin4, COM порт посылает и принимает БАЙТЫ. Каждому БАЙТУ соответствует свой символ в тексте, который вы набираете в Edit или принимаете в RichEdit (некоторые байты не могут быть отражены в виде печатных символов ни там, ни там). Вот они, кроме не отражаемых:
Символы


Add(MainForm,2953706,126,147)
{
 link(onCreate,7342157:doFor,[])
}
Add(StringTable,7605251,322,161)
{
 Left=60
 Top=10
 Width=155
 Height=240
 Columns=#7:Байт=60|9:Символ=60|
 Grid=0
}
Add(For,7342157,182,161)
{
 End=255
 link(onEvent,13584171:doConvert,[])
}
Add(StrCatDelim,3279212,273,161)
{
 Delimiter=";"
 link(onStrCatDlm,7605251:doAdd,[])
 link(Str1,7342157:Position,[(279,152)(265,152)(265,201)(188,201)])
}
Add(Convertor,13584171,224,161)
{
 Mode=4
 link(onResult,3279212:doStrCatDlm,[])
}

(Выкладывайте СХЕМЫ в теги Code)
карма: 19

0
Ответов: 140
Рейтинг: 2
#4: 2017-07-29 20:44:37 ЛС | профиль | цитата

Add(MainForm,2953706,21,105)
{
}
Add(Edit,5824190,168,210)
{
 Left=5
 Top=25
 Width=285
 Text="Данные в порт "
 link(onEnter,8372962:doWork2,[(212,223)(212,216)])
}
Add(Memo,7064810,413,189)
{
 Left=5
 Top=55
 Width=375
 Height=190
 Strings=#15:Данные из порта|
 AddType=1
 ScrollBars=3
 ReadOnly=0
}
Add(Edit,5125060,259,70)
{
 Left=5
 Top=5
 Width=85
 Text="Порт"
}
Add(ButtonRush,2399426,126,287)
{
 Left=290
 Top=25
 Caption="Send"
 Glyphs=[]
 link(onClick,6320366:doData,[])
}
Add(DoData,6320366,168,287)
{
 link(onEventData,8372962:doWork3,[(228,293)])
 link(Data,5824190:Text,[])
}
Add(HubEx,8372962,224,210)
{
 link(onEvent,10291952:doWrite,[(244,216)(244,153)])
}
Add(Button,12553734,154,105)
{
 Left=100
 Top=5
 Width=70
 Caption="Open port"
 link(onClick,10291952:doOpen,[(222,111)(222,139)])
}
Add(Button,12979374,154,140)
{
 Left=185
 Top=5
 Width=80
 Caption="Close port"
 link(onClick,10291952:doClose,[])
}
Add(ChangeMon,129213,336,189)
{
 link(onData,7064810:doAdd,[])
}
Add(COMEX,10291952,259,133)
{
 link(onRead,129213:doData,[(313,146)(313,195)])
 link(Port,5125060:Text,[])
}


В COMEX есть параметр databits
он должен совпадать с настройками драйверами ардуинки
Параметр Биты данных
карма: 0
私はアニメが大好き
0
Ответов: 195
Рейтинг: 7
#5: 2017-07-29 20:54:13 ЛС | профиль | цитата
спасибо большое я запустил и и отправил данные в порт "1" data bits 8

Редактировалось 3 раз(а), последний 2017-07-29 20:59:55
карма: 0

0
Ответов: 140
Рейтинг: 2
#6: 2017-07-29 21:05:40 ЛС | профиль | цитата
hin4 писал(а):
я запустил и и отправил данные в порт "1" http://prntscr.com/g1vc7r

void setup() {
  Serial.begin(9600);
  }

void loop() {
  for (int i=0; i <= 10; i++)
  {
    Serial.print(i);
    delay(2000);
    }
  
}
  
Залей это в ардуинку и пробуй

Редактировалось 1 раз(а), последний 2017-07-29 21:06:59
карма: 0
私はアニメが大好き
0
Ответов: 195
Рейтинг: 7
#7: 2017-07-29 21:26:00 ЛС | профиль | цитата
ардуинка отвечает отправляет 123456....
карма: 0

0
Ответов: 140
Рейтинг: 2
#8: 2017-07-30 18:06:27 ЛС | профиль | цитата
ну вот и прекрасно!
карма: 0
私はアニメが大好き
0
8
Сообщение
...
Прикрепленные файлы
(файлы не залиты)