8byte lik gönderdiğim datanın bazı byte'ları farklı değerde çıkıyor..

Başlatan mustafa_cmbz, 29 Aralık 2018, 22:42:31

mustafa_cmbz

Merhabalar..

MH-Z16 co2 sensörü geldi ufak bir kod yazıp denemeler yapmak istedim fakat sabahtan beri kafayı yedirtti bana.

En son çare pic'in çıkışına usb-serial çevirici takıp MH-Z16 ya gönderdiğim datayı teyit etmek oldu.

Çok garip bir sorunum var gibi.Yada ben yanlış yapıyorum bilemedim..



data sheetin diyor ki : sensörden veri okumak için ilk olarak ona naber nasılsın iyimisin hoşmuşun demek gerekiyor..

HSerOut2 [$FF,$01,$086,$00,$00,$00,$00,$00,$79]  ' CO2 SENSORUNU OKUMAK İÇİN GONDER

aynen datasheetin de yazdığı gibi sensörün halini vaktini soruyorum daha doğrusu yukarıdaki kod'da ki gibi yazdığım dataları göndermeye çalışıyorum...

ama sensörden ses seda yok...Sonra dediğim gibi serial den dinlemek istedim acaba ne gidiyor sensör tarafına diye



görünce acayip şaşırdım..Benim yukarıda yazdığım göndermeye çalıştığım ne çıkıştan aldığım ne..

Ne yapmam lasım ?

 

mustafa_cmbz

İşin ilginç tarafı simulasyonda gönderilen dataları doğru gösteriyor...


z

Islemcinin Tx ve Rx hattina normalde kapali basinca acilan butonlar koy.

Programin dongu icinde surekli sensorden data isterken bu butonlara arada bir basarak iletisimi boz.

Eger adamakalilli bir yazilim yaptiysan sistemin kendini toparlamasi lazim. Yoksa cakilir kalir.

Boyle yaparsan simulasyonda da test edebilirsin.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

mustafa_cmbz

Hocam o konuda haklısınız fakat şuan sıkıntı $86 değerini picin çıkışında $3f olarak okumam..

Sanırım sensöre bu şekilde yanlış bilgi gidiyor..

z

Rx Tx hattinda farkinda olmadigin bir invertor olmasin? TTL baglantida MCU dada USB donusturucude de inverter olmamasi lazim yada her ikisinde de olmasi lazim.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ferdem

Alıntı yapılan: mustafa_cmbz - 29 Aralık 2018, 22:42:31Ne yapmam lasım ?

 

Proton+ UART TX örneklerini incelemek lazım. UART ayarlarında bir hata olsa gerek.
Bazı byte lar doğru gidiyor olabilir ancak görünen o ki UART doğru ayarlanmamış.

tekosis

İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.

JOKERAS

False İnterrupt hatasına benziyor.
Frame'in başı yanlışsa,yanlış iliklenen Gömlek düğmesi misali
hepsi yanlış gidiyordur herhalde.

hwdesigner

bazen osc hatası olabiliyor. yanlış çarpan ile set ettiyseniz osc bozuk ise v.s Yani zamansal kayma sebebiyle

OG

FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

mustafa_cmbz

Alıntı yapılan: OG - 30 Aralık 2018, 17:55:04HSerOut2 [$FF,$01,$086,$00,$00,$00,$00,$00,$79]
Hatalı Byte

hocam o deneme yaparken kalmış muhtemel

HSerOut2 [$FF,$01,$86,$00,$00,$00,$00,$00,$79]

bu şekilde de göndersem sonuç aynı aşağıdaki gibi :

0x3f 0x1 0x3f 0x0 0x0 0x0 0x0 0x0 0x79

birşey dikkatimi çekti burada...

mesela sadece:

HSerOut2 [$86]

dediğimde de pc de serial portta gördüğüm :

0x3f

bu ne anlama geliyor ?


mustafa_cmbz

son olarak serial port programından $86 gönderdim serial to usb çeviricinin rx tx ucunu kısa devre ettiğimde geriye aldığım yanıt bu şekilde


OG

sen ascii olarak (string) gönderiyorsun, aldiğin sonuç onu gösteriyor
Yani
$86 göndermiyor
"$86" gönderiyorsun, 3 ayrı byte
ascii tablosuna bakarsan anlayacaksın
"$" 0x24 yani $24
"8" 0x38 yani $38
"6" 0x36 yani $36
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

OG

Datasheet'e yeni baktım dikkatimi çekti
IN/OUT data voltajları dikkate alınıyormu.

FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

mustafa_cmbz

serial port programında evet dediğin gibiymiş biz string gönderiyormuşuz ondan öyleymiş fakat

işlemciden hex olarak $86 gönderdiğim de neden 0x3f olarak alıyorum ? burasını hala anlamış değilim..

voltaj kısmıyla sorduğun şey sanırım



arada çevirici var onu soruyorsan...