[ Pera Bre @ 24.06.2019. 15:37 ] @
Pozdrav ljudi. Potrebna mi je mala pomoc oko koda u Arduinu. Sve sto treba da uradim jeste da posaljem ovakav kod (A0 01 00 A1) drugom kontroleru za otvaranje ili zatvaranje releja. Na tom kontroleru je Ch340 cip, koji kad dobije odgovarajuci hex kod otvara ili zatvara odgovarajuci rele. Uspeo sam da ga "nateram" da radi preko Pc-ja sa SSCom32 programom. Pokusao sam i sa Arduinom sa "Serial.write ('A0 01 00 A1'), ali nista se ne desava. Pa ako bi mogao neko da mi pomogne oko slanja tog koda. Pozdrav i hvala.
[ eembedded @ 24.06.2019. 16:01 ] @
Prvo "Serial.write ('A0 01 00 A1')" ne moze da radi.
napravis string
Code:
char data[4] = {0xA0, 0x01, 0x00, 0xA1}

to onda posaljes na:
Code:
Serial.write(data, sizeof(data))

Da li si dobro povezao pinove rx->tx, tx->rx i gnd->gnd
citanje radis sa
Code:
if(Serial.available() > 0 )
{
  delay(100);
  while( Serial.available() > 0)
          {
              dataRead[i] = Serial.read();
          }
}

i onda kad hoces da proveris byte po byte:
Code:
if(dataRead[0] == 0xA0) ...


Kad ovako koristis serial ne mozes koristiti komunikaciju sa racunarom(osim na onima koji imaju 2 uarta)
[ tomam @ 25.06.2019. 10:00 ] @
Komunikacija je preko USB-a ???
Ako je to tacno serial je 232 i nece moci :(
Resenje zobidji ch340 i uzmi neke 488 liniske drajvere
[ eembedded @ 25.06.2019. 14:13 ] @
Nije problem u ch340 nego pojedini arduino(atmega) imaju samo jedna uart, pa ako ga zauzmes za komunikaciju sa drugim arduinom nemas drugi za komunikaciju sa kompom.
Jedno resenje je da dva arduina komuniciraju preko i2c (wire komunikacija u arduino ide), tada imas slobodan uart
[ Pera Bre @ 06.07.2019. 12:49 ] @
Citat:
eembedded:
Prvo "Serial.write ('A0 01 00 A1')" ne moze da radi.
napravis string
Code:
char data[4] = {0xA0, 0x01, 0x00, 0xA1}

to onda posaljes na:
Code:
Serial.write(data, sizeof(data))

Da li si dobro povezao pinove rx->tx, tx->rx i gnd->gnd
citanje radis sa
Code:
if(Serial.available() > 0 )
{
  delay(100);
  while( Serial.available() > 0)
          {
              dataRead[i] = Serial.read();
          }
}

i onda kad hoces da proveris byte po byte:
Code:
if(dataRead[0] == 0xA0) ...


Kad ovako koristis serial ne mozes koristiti komunikaciju sa racunarom(osim na onima koji imaju 2 uarta)


Probao sam ovako i nece da radi. Poludeo sam vise. Svetli samo Rx diodica, a Tx ne svetli uopste. Za ovo "dataRead = Serial.read();" prijavljuje gresku. Jel ima jos neko neku ideju?
[ Burgos @ 06.07.2019. 13:55 ] @
Da li si inicijalizovao serijski port: https://www.arduino.cc/en/Serial/Begin

Takođe, koju grešku prijavljuje Serial.read?
[ Pera Bre @ 07.07.2019. 18:57 ] @
Jesam. Stavio sam Serial.begin(9600). Prijavljuje ovu gresku "'dataRead' was not declared in this scope".
[ eembedded @ 07.07.2019. 19:06 ] @
Da li si deklarisao dataRead na kontroleru koji prima poruke?
[ Pera Bre @ 12.07.2019. 15:00 ] @
Nema potrebe, taj kontroler se ne programira. On odradi svoje kad dobije HEX kod na 9600 baud. Problem je sto Arduine nece da posalje kod na Tx pinu.
[ ZAS011 @ 12.07.2019. 16:06 ] @
A da ti lepo prikačiš tvoje programče ovde pa da vidimo šta to tebe, bez one stvari
Naravno, i da napišeš koji je arduino u pitanju.
[ veselinovic @ 12.07.2019. 20:53 ] @
Hoce takve fantomske greske da se pojave kad instalises noviji ide od onog u kojem je pisan softver.
Iz nekog cudnog razloga nove biblioteke su malko drugacije.
Nisam cit'o, hod'o.
[ Pera Bre @ 13.07.2019. 14:28 ] @
Citat:
ZAS011:
A da ti lepo prikačiš tvoje programče ovde pa da vidimo šta to tebe, bez one stvari :)
Naravno, i da napišeš koji je arduino u pitanju.


Klasican Arduino Uno, sa onim manjim procesorom.



Code:
 void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600) ;
 
}

void loop() {
  char data[4] = {0xA0, 0x01, 0x00, 0xA1} ;
  Serial.write(data, sizeof(data)) ;
  delay(2000) ;

}
  


Pokusao sam ovo iz videa i to radi normalno.


https://youtu.be/KYWCkdrCUKg?t=374
[ tomam @ 14.07.2019. 06:44 ] @
" Na tom kontroleru je Ch340 cip" .........""nateram" da radi preko Pc-ja"
Nacrtaj nam kako si to povezao :) == koju si zicu gde vezao , mislim da je to odgovor zasto neradi , Arduino NANO => " Na tom kontroleru je Ch340 cip"
[ ZAS011 @ 14.07.2019. 09:21 ] @
U CH340 ti i leži problem.
Ne možeš 2 arduina da povežeš preko USB priključaka. USB protokol ima svoj "overhead" koji je za tvoj PC transparentan (barem za terminalske programe).
Večeras ću probati da "odsnifujen" USB kada je na njega priključen jedan nano, da vidiš šta se dešava na USB strani arduino pločice.
Ako ti na prijemnoj strani nije neki kontroler koji podržava OTG, ništa od takvog povezivanja.
BTW na arduinu bi trebalo da imaš RX i TX, samo mora da odvojiš CH340 od tih pinova.

U prilogu imaš šemucu od Nano.
[ Pera Bre @ 14.07.2019. 15:32 ] @
Citat:
tomam:
" Na tom kontroleru je Ch340 cip" .........""nateram" da radi preko Pc-ja"
Nacrtaj nam kako si to povezao :) == koju si zicu gde vezao , mislim da je to odgovor zasto neradi , Arduino NANO => " Na tom kontroleru je Ch340 cip"


Povezem ga sa obicnim USB Mini kablom. Arduino je UNO.


Citat:
U CH340 ti i leži problem.
Ne možeš 2 arduina da povežeš preko USB priključaka. USB protokol ima svoj "overhead" koji je za tvoj PC transparentan (barem za terminalske programe).
Večeras ću probati da "odsnifujen" USB kada je na njega priključen jedan nano, da vidiš šta se dešava na USB strani arduino pločice.
Ako ti na prijemnoj strani nije neki kontroler koji podržava OTG, ništa od takvog povezivanja.
BTW na arduinu bi trebalo da imaš RX i TX, samo mora da odvojiš CH340 od tih pinova.

U prilogu imaš šemucu od Nano.


Pa i ne vezujem dva Arduina preko USB-a. Isprogramiram Arduina preko Pc-a, pa ga otkacim. Posle na Arduino nakacim ovaj drugi kontroler. Inace taj kontroler ima na sebi Mini Usb konektor i cetri rupice na ploci za lemljenje. Na foru +5v, D-, D+ i 0V. Tako da sam vezao sa Arduina Tx na D-, a Rx na D+ i GND na GND. Napajanje sa punjaca 5V na oba. Mene vise brine ovaj program jer ne svetli uopste Tx dioda na Arduinu, pa mislim da i ne salje nista ka ovom drugom kontroleru.
[ ZAS011 @ 14.07.2019. 18:03 ] @
Citat:
Pa i ne vezujem dva Arduina preko USB-a. Isprogramiram Arduina preko Pc-a, pa ga otkacim. Posle na Arduino nakacim ovaj drugi kontroler. Inace taj kontroler ima na sebi Mini Usb konektor i cetri rupice na ploci za lemljenje. Na foru +5v, D-, D+ i 0V. Tako da sam vezao sa Arduina Tx na D-, a Rx na D+ i GND na GND. Napajanje sa punjaca 5V na oba. Mene vise brine ovaj program jer ne svetli uopste Tx dioda na Arduinu, pa mislim da i ne salje nista ka ovom drugom kontroleru.

E, ovo ti ne pije vodu. Serial i USB nisu kompatibilni jedno sa drugim.
[ goran_68 @ 14.07.2019. 20:17 ] @
Citat:
ZAS011:

Večeras ću probati da "odsnifujen" USB kada je na njega priključen jedan nano, da vidiš šta se dešava na USB strani arduino pločice.


Čime snifuješ?
Istekla mi je besplatna licenca za neke sniffer-e a treba mi da nešto proverim.
[ ZAS011 @ 14.07.2019. 21:07 ] @
Wireshark
U prilogu USB komunikacija gde Nano šalje
Code:
{0xA0, 0x01, 0x00, 0xA1}
[ goran_68 @ 14.07.2019. 21:28 ] @
Treba da radi wireshark na linux-u. To ću da probam tek. Ali probam juče na na Win10 i ne radi. Instalirao sam i usbpcap ali ne vidim usb interfejs u wiresharku.
[ ZAS011 @ 14.07.2019. 21:44 ] @
Valjda se vidi u mom profilu koji mi je OS

U VM mogu da trošim 7, 10 mi izgleda čudnjikavo mnogo telefonira kući, radi i ono što ne sme, ...
[ sdurut @ 15.07.2019. 11:08 ] @
Prvo CH340 je USB slave uređaj. Ne može da se vezuje D+ i D- sa jednoj USB-a Arduina na drugi. To neće da radi. Potrebno je povezati Arduino PIN 0 RX sa jednopg na Pin 1 TX na drugom arduinu. I takođe Pin 1 sa prvog na Pin 0 Na drugopm arduinu. Dakle uprošćeno ukrstiti TX i RX na jednom i drugom. Takođe povazati GND jednog i drugod Arduina da se izjednači potencijal. Između CH340 i ATmega328P ima ubacen otpor od 1kohm tako da neće smetati za komunikaciju između dva arduina. Jedino nećeš moci da stampas debug out. Za debug mozes da upotrebis Soft serial biblioteku i da zakačiš eksterni CH340 ili neki FTDI (sasvim svejedno) na neki pin Arduina. Možeš i da upotrebiš i soft serial biblioteku za glavnu komunikaciju, ali ja sam više pristalica hardverskog UART-a pošto u produkciji neće ti trebati debug out.
[ Pera Bre @ 15.07.2019. 15:20 ] @
Citat:
ZAS011:
Citat:
Pa i ne vezujem dva Arduina preko USB-a. Isprogramiram Arduina preko Pc-a, pa ga otkacim. Posle na Arduino nakacim ovaj drugi kontroler. Inace taj kontroler ima na sebi Mini Usb konektor i cetri rupice na ploci za lemljenje. Na foru +5v, D-, D+ i 0V. Tako da sam vezao sa Arduina Tx na D-, a Rx na D+ i GND na GND. Napajanje sa punjaca 5V na oba. Mene vise brine ovaj program jer ne svetli uopste Tx dioda na Arduinu, pa mislim da i ne salje nista ka ovom drugom kontroleru.

E, ovo ti ne pije vodu. Serial i USB nisu kompatibilni jedno sa drugim.


Kljucna stvar. Sad tek vidim da je ovaj Ch340 konvertor sa USB-a na Serial. A kinez napisao "2, onboard MINI USB interface, stable connection, can be directly controlled by MCU (Arduino, 8051, AVR, PIC, DSP, ARM, MSP431, TTL logic level, etc.)" i navozao me samo tako.
[ ZAS011 @ 15.07.2019. 16:06 ] @
Nije tebe kinez ništa "navozao", sam si se
Žuti je lepo napisao da je USB Interface
Nisi uključio mozak da bi razdvojio USB od TTL Serial.

USB nema Rx i Tx pinove, ima diferencijalni par D+/D-, slično kao RS-485.
[ Pera Bre @ 15.07.2019. 19:47 ] @
Bilo kako bilo samo sam vreme izgubio.. Jel postoji neki Shield za arduino da sa Tx Rx convertuje na USB interfejs?
[ ZAS011 @ 15.07.2019. 20:32 ] @
Mega, Uno, Nano imaju USB na sebi, jedino što su USB Slave, znači mogu da se povežu samo sa drugim računarom a ne i međusobno.
@sdurut ti je napisao šta bi mogao da uradiš. Imaš izvedene Rx i Tx kao pinove na svakom arduini, povežeš Rx prvog na Tx drugog i Tx prvog na RX drugog kao i GND prvog sa GND drugog.
3 žičke.
[ Pera Bre @ 16.07.2019. 13:20 ] @
Citat:
sdurut:
Prvo CH340 je USB slave uređaj. Ne može da se vezuje D+ i D- sa jednoj USB-a Arduina na drugi. To neće da radi. Potrebno je povezati Arduino PIN 0 RX sa jednopg na Pin 1 TX na drugom arduinu. I takođe Pin 1 sa prvog na Pin 0 Na drugopm arduinu. Dakle uprošćeno ukrstiti TX i RX na jednom i drugom. Takođe povazati GND jednog i drugod Arduina da se izjednači potencijal. Između CH340 i ATmega328P ima ubacen otpor od 1kohm tako da neće smetati za komunikaciju između dva arduina. Jedino nećeš moci da stampas debug out. Za debug mozes da upotrebis Soft serial biblioteku i da zakačiš eksterni CH340 ili neki FTDI (sasvim svejedno) na neki pin Arduina. Možeš i da upotrebiš i soft serial biblioteku za glavnu komunikaciju, ali ja sam više pristalica hardverskog UART-a pošto u produkciji neće ti trebati debug out.


Ne pokusavam da vezem dva Arduina, nego jedan kontroler za kontrolu releja sa Arduinom. Posto smo vec ustanovili da je na njemu Ch340 cip i da ne moze da ide na Tx Rx pinove Arduina, treba mi neka solucija. Ako postoji neki Shield da Tx Rx konvertuje na USB interfejs fazon Host, ili neki drugi kontroler koji ce da komunicira sa Arduinom preko Serial-a, i da daje pobudu ULN cipu za releje.
[ eembedded @ 16.07.2019. 16:11 ] @
Jel mozes da objasnis sta zapravo hoces da uradis ? posto iz poslednje poruke mi nista nije jasno.
Ti hoces da imas 2 kontrolera, jedan da upravlja relejima a drugi da komunicira sa kompom i prvim?
Da li imas mogucnost izbora kontrrolera ili je jedan fiksiran tj taj sa micro usb (d- d+) ?, ako jeste reci bar koji je...
Ako mogu oba da budu arduino onda mozes da koristis jedan za komunikaciju sa racunarom, a onda preko i2c ili spi da razmenjujes podatke sa drugim.


[ ZAS011 @ 16.07.2019. 17:52 ] @
Bez nekog ozbiljnijeg kontrolera na "šildu" nema USB host-a.
I dalje ne želiš da koristiš surutku među ušima.

Preskočiš ta 2 komada CH340, zar je to teško?

[ Pera Bre @ 16.07.2019. 21:28 ] @
Citat:
eembedded:
Jel mozes da objasnis sta zapravo hoces da uradis ? posto iz poslednje poruke mi nista nije jasno.
Ti hoces da imas 2 kontrolera, jedan da upravlja relejima a drugi da komunicira sa kompom i prvim?
Da li imas mogucnost izbora kontrrolera ili je jedan fiksiran tj taj sa micro usb (d- d+) ?, ako jeste reci bar koji je...
Ako mogu oba da budu arduino onda mozes da koristis jedan za komunikaciju sa racunarom, a onda preko i2c ili spi da razmenjujes podatke sa drugim.




Evo opet da objasnim. Hocu da povezem ovaj kontroler za releje koji vec imam sa Arduinom, bez kompa. Znaci samo njega na Arduina. Zgodan je lepo se ubode u plocu sa relejima nema lemljenja zica nema zezanja.
[ Pera Bre @ 16.07.2019. 21:58 ] @
Citat:
ZAS011:
Bez nekog ozbiljnijeg kontrolera na "šildu" nema USB host-a.
I dalje ne želiš da koristiš surutku među ušima.

Preskočiš ta 2 komada CH340, zar je to teško?



Ako mislis da zaobidjem Ch340 na toj ploci to je i meni palo napamet. Medjutim, sad sam malo nasao vremena pa sam se malo vise pozabavio ovom stvarcicom.
Fora je u tome sto sam se debelo zeznuo. Rupice na ploci nisu vezane paralelno na D+/D- sa USB konektora kao sto je meni izgledalo na prvi pogled. Samim tim i nisu D+/D-, Niti USB.
Kontroler je sc92f7003. Rupe na ploci idu na pinove 8 i 18 proverio unimerom, i opet dolazimo do Tx Rx.


[ ZAS011 @ 16.07.2019. 22:19 ] @
Znači, sa Arduina Rx na pin 8 sc92f7003, Tx na pin 18 sc92f7003 i GND arduina na pin 7 sc92f7003.
I dalje samo 3 žičke
Rx i Tx pinovi Adruina ( 0 i 1 ) su ti ispred CH340, klasičan TTL Serial.
[ Pera Bre @ 16.07.2019. 22:27 ] @
Eto nas na pocetku. Tako sam prvo i pokusao. Ne znam zasto ne svetli Tx dioda na Arduinu ako vec salje neke bitove? Sve mi se cini da ovaj program na Arduinu nije dobar.. Citam sad po netu pise da UART treba da ima start bit i stop bit. Jel te bitove moram ja da kucam u programu ili kako vec to ide?
Code:
 
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600) ;
 
}

void loop() {
  char data[4] = {0xA0, 0x01, 0x00, 0xA1} ;
  Serial.write(data, sizeof(data)) ;
  delay(2000) ;

}
[ ZAS011 @ 17.07.2019. 00:27 ] @
Ovako izgleda to malecko programče (na LEDarama) na Nano.

https://cloud.mail.ru/public/5A5x/4t5kDe6oV
[ Pera Bre @ 17.07.2019. 06:23 ] @
Sad se pojavio drugi problem. Kad vezem Tx na Rx i Rx na Tx sija i Tx diodica sto je dobro. Kad povezem Gnd na Gnd sija diodica na drugom kontroleru i daje napon na izlaznim pinovima za pobudu releja. Kao da se nekako napaja sa Arduinovih Rx Tx pinova. Kad na taj drugi kontroler dovedem eksternih 5V opet ne sija Tx dioda na Arduinu...

[Ovu poruku je menjao Pera Bre dana 17.07.2019. u 10:51 GMT+1]
[ ZAS011 @ 17.07.2019. 20:46 ] @
Jesi li ti siguran da ti je ta pločica sarelejima ispravna?
[ Pera Bre @ 18.07.2019. 05:23 ] @
Nije to plocica sa relejima to je samo kontrolna jedinica koja se ubada na plocu sa relejima. Pa kad je nakacim na USB i komp radi normalno..
[ sdurut @ 18.07.2019. 08:01 ] @
Relejima lako komandujes sa Arduinom. Arduino ima dosta GPIO portova. Stavis jedan NPN tranzistor jedan otpor i jedna damping dioda i to je sve za jedan relej. Za uštedu na ploči kad imaš više releja staviš ULN2003 i zavrsio si posao. Ne vidim razlog da se dodaju neke USB ploče i ostala skalamerija. Ta USB kontrolna ploča je namenjena za PC.
[ ZAS011 @ 18.07.2019. 11:11 ] @
Jedno pitanje: zašto informacije o problemu koji imaš moramo da čupamo k'o zubar kvaran zub sa krivim korenjem?
Daj šemu toga što te muči, ako nemaš daj link prema uređaju.
Očekuješ da ti pomognemo a ti svoj problem ne umeš u kratkim crtama da objasniš.

Nije više pločica sa relejima, sad je kontrolna jedinica, Jbt koji naziv k'o da je svemirska tehnologija.
[ goran_68 @ 18.07.2019. 13:03 ] @
!!Eksplozivni svemirski modulator!!!
Stvarno, daj neku sliku i nacrtaj kako si povezao pa da idemo dalje.
[ Pera Bre @ 18.07.2019. 15:02 ] @
Citat:
sdurut:
Relejima lako komandujes sa Arduinom. Arduino ima dosta GPIO portova. Stavis jedan NPN tranzistor jedan otpor i jedna damping dioda i to je sve za jedan relej. Za uštedu na ploči kad imaš više releja staviš ULN2003 i zavrsio si posao. Ne vidim razlog da se dodaju neke USB ploče i ostala skalamerija. Ta USB kontrolna ploča je namenjena za PC.


U pravu si, ali na Arduinu nemam 16 pinova za kontrolu 16 releja.

Citat:
ZAS011:
Jedno pitanje: zašto informacije o problemu koji imaš moramo da čupamo k'o zubar kvaran zub sa krivim korenjem?
Daj šemu toga što te muči, ako nemaš daj link prema uređaju.
Očekuješ da ti pomognemo a ti svoj problem ne umeš u kratkim crtama da objasniš.

Nije više pločica sa relejima, sad je kontrolna jedinica, Jbt koji naziv k'o da je svemirska tehnologija.


Objasnjavao sam vise puta, slikacu veceras kad dodjem kuci
[ ZAS011 @ 18.07.2019. 18:14 ] @
Da ne bismo mnogo mozgali, na tom superultramegagiga cincilatoru za kaboznu su ti komunikacioni pinovi 2 i 3, to ti je prvi serijski port na tom kineskom mikrokontroleru.

Pošto te mrzi da barem nalko duže pogledaš u sliku koju si prikačio (sc92f7003) i pročitaš šta piše pored svakog od pinova, mene će mrzeti da dalje učestvujem u ovoj temi.