Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Dobrý den,
zajimala by me komunikace se seriovym portem pomoci programu python, nebo pascal.
Hlavně bych chtěl vědět jak poslat na určitý výstupni pin řadu jedniček kvůli otestování.
Kdyby mi tu někdo poslal několik řádků a popsal mi co který přesně dělá, moc by mi to pomohlo.
Díky za pomoc.
Offline
↑ Joker478:
Ahoj,
s pascalom a sériovým portom skúsenosť nemám(chvalabohu ;d).
Čo sa týka Pythonu, tak mám skúsenosť s knižnicou PySerial, ktorá je pre python asi jediná :) a navyše má dobrú dokumentáciu.
Obsahuje funkcie ako, setRTS(), setDTR(), atď...
V dokumentácií nájdeš aj nejaké "examples"
Link: http://pyserial.sourceforge.net/
Offline
Dobrý den,
tak knihovnu už se mi podařilo konečně přidat.
PotŘeboval bych to teď otestovat.
Mezi výstupní piny a zem jsem si připojil LED diody, pomocí kterých bych to teď chtěl otestovat.
Mohl by jste mi poradit nějaký program, který by mi napřiklad na pin3 poslal nekonečnou řadu jedniček, což by mi diodu rozsvítilo a já bych věděl, že to funguje správně?
Díky moc
Offline
↑ Joker478:
No tak 3. pin je Tx, a tam je ta jednotka v prípade "Breaku".
Pri tomto programe bude LED blikať v sekundových intervaloch.
import sys
import serial
from time import sleep
s = serial.Serial(port="COM1") # Nezabudni skontrolova cislo portu!
while 1:
try:
s.sendBreak(1) # 1sekundovy break
sleep(1) # 1 sekundu cakat
except KeyboardInterrupt:
sys.exit()
s.close()To isté môžeš urobiť aj s RTS-pinom (číslo 7)
import sys
import serial
from time import sleep
s = serial.Serial(port="COM1")
while 1:
try:
s.setRTS(1)
sleep(1)
s.setRTS(0)
sleep(1)
except KeyboardInterrupt:
sys.exit()
s.close()Offline
Dobrý den,
kód jsem dal, upravil jsem na svůj com3 ale neudělá to nic, ani to nehodí chybu.
zkoušel jsem kód vkládat i po částech... při vložení import serial mi to hodí chybovou hlášku
:>>> import sys
>>> import serial
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
import serial
File "C:\Python32\lib\site-packages\serial\__init__.py", line 19, in <module>
from serialwin32 import *
File "C:\Python32\lib\serialwin32.py", line 53
except Exception, msg:
^
SyntaxError: invalid syntax
modul by mel být nainstalován dobre... lib/site-packages/serial/serialwin32 tam je...
neni mozne ze to je tim ze mam 64bit ?
jinak vám chci poděkovat za ten kód co jste pro mě napsal...
ještě jsem si všimnul další věci....a to, že napětí na jednotlivých pinech je různé... myslím kladné i záporné... přišel jsem na to náhodou když jsem otočil polaritu diody
Offline
↑ Joker478:
Ano, napätie na pinoch sa môže pohybovať okolo ±3 až ±15, a pri RxD až ±25, ak sa nemýlim...
Myslím, že logická 1 je sú záporné a logická 0 sú kladné hodnoty.
Treba to vygoogliť a naštudovať :)
Offline
↑ Joker478:
Nie je problém ;d
Druhý program:
Tu len pomocou funkcie setRTS(bool) striedavo "zapíname" a "vypína" LEDku. Funkciu sleep(1) pozastaví program takže 1 sekundu zostane v zapnutom stave potom sa vypne a open zostane 1 sekundu vo vypnutom stave až do nekonečna. tvz. "oneskorenie" ;d
Pseudokód:
nekonecna_slucka:
LED_zapni;
cakaj_1_sekundu;
LED_vypni;
cakaj_1_sekundu;
koniec_slucky.Prvý program:
sendBreak(1) znamená, že pošle 1 sekundovú medzeru(break, space)(LED svieti iba 1 sekundu) a potom sa vráti do predchádzajúceho stavu a keďže chceme zostať 1 sekundu aj v tomto stave(LED nesvieti) tak, použijeme funkciu sleep(1), ktorá pozastaví program a tým ponechá v stave, kedy LED nesvieti.
Pseudokód:
nekonecna_slucka:
rozsviet_LED_na_1_sekundu;
cakaj_1_sekundu;
koniec_slucky.rozsviet_LED_na_1_sekundu je vlastne:
LED_zapni cakaj_1_sekundu LED_vypni
Offline
↑ Joker478:
Chcel som to napísať, aby to bolo hneď jasné, tak dúfam, že to nie je veľmi zložité a že technické nepresnosti mi budú odpustené ;d
Offline