Can bus veri iletimi hakkında

karavela

Aktif Üye
Katılım
7 Temmuz 2022
Mesajlar
110
İki arduino arasında Can bus ile veri iletimi gerçekleştiriyorum float verilerin ondalıklı kısımları 00 olarak geliyor. Örneğin 12.45 veri gönderiyor 12.00 gözüküyor sorun ne olabilir?(Bütün değişkenler float olarak tanımlı. Can baud 500kbps 8mhz)
 
Sorum biraz yanlış oldu aslında can bus ile float veri iletebiliyor muyuz? Çünkü birçok uygulama videosu izledim hepsinde ondalık kısmı 00 dı.
 
Dijital devrelerde veri iletimi binary olduğuna göre, her türlü veri gönderilebilir. Bu float sayı olur, string olur, JPG dosyası olur. Ne olduğu önemli değil. Bir float sayı bellekte 4 byte olarak saklanır, bu 4 byte'ı karşı tarafa gönderirsen o taraf artık o float sayıyı nasıl uygunsa o şekilde ekranda görüntüleyebilir.
 
Sorum biraz yanlış oldu aslında can bus ile float veri iletebiliyor muyuz? Çünkü birçok uygulama videosu izledim hepsinde ondalık kısmı 00 dı.
o zaman şöyle yapariblisin.
float verisini 2 parçaya böl.
önce 12 sonra 45 yolla.
ve arada ayraç gibi bir sayıda yolla

mesela 12 - 45 yolladıktan sonra 6 yolla 6 artık göndereceğim data bitti al işle demek olsun.
 
Yakın zamanda hali hazırda kullandığımız araca bir bilgi ekranı yapmayı planlıyorum aracın birkaç noktasına iletişim CAN-BUS üzerinden yapılmış.

CAN üzerinden akan veriler genelde işimizi görecek veriler motor yağ basıncı,yakıt basıncı,su sıcaklığı,yağ sıcaklığı,egr valfi açısı,hava akış oranı,hava kalitesi,rpm,hız bilgileri dönüyor daha dönen birkaç veri daha var ama onlar işime yaramayacak.

bu verileri stm32f103 ile işleyerek bir ekrana yazdırmayı düşünüyorum.
Bazen yola dalıp kadrana bakmıyoruz ve bu sırada hararet yükselmiş olabiliyor buna bir düdüklü uyarı gibi şeyler düşünüyorum.

Hazır CAN konusu açılmışken yazayım dedim
 
o zaman şöyle yapariblisin.
float verisini 2 parçaya böl.
önce 12 sonra 45 yolla.
ve arada ayraç gibi bir sayıda yolla

mesela 12 - 45 yolladıktan sonra 6 yolla 6 artık göndereceğim data bitti al işle demek olsun.
"You can not send Float or numbers with decimal points through CAN bus. The data send through a CAN Bus should be in a character format and integers, eg '1', '2', '3' . "

Can bus ta float olmuyormuş. Dediğiniz mantıklı ama mcp2515 te 8 tane veri gönderebilirim ben de hepsini kullanıyorum. 100 ile çarpıp göndermeyi deneyeceğim. Ama şu an arastirdigim kadarıyla 0-255 arası gönderiliyor herhalde map ile veriyi dönüştürüp göndereceğim artik biraz doğruluk payı azalacak ama cok sorun degil benim aklima suan bu geldi.
 
@karavela, @taydin nın dediği gibi "Dijital devrelerde veri iletimi binary olduğuna göre, her türlü veri gönderilebilir...."
Yeter ki veri hem gönderen hem de alan tarafında aynı formatta olsun. Bunu "union" veya "bitwise structure" yapıları ile yapanlar var.
Basit bir örnek olarak veri de belli bir accuracy var ise yani örneğin 0.1 adımlar ile veri değişiyorsa, LSB biti değeri 0.1 kabul edilerek ölçekleme yapılır, karşı tarafta da aynı yöntem tersten uygulanarak veri geri dönüştürülür.
 

Çevrimiçi üyeler

Forum istatistikleri

Konular
7,285
Mesajlar
123,215
Üyeler
2,939
Son üye
Cano

Son kaynaklar

Son profil mesajları

Freemont2.0 herbokolog Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
Freemont2.0 posta Freemont2.0 wrote on posta's profile.
Merhabalar :)
az bilgili çok meraklı
Prooffy semih_s Prooffy wrote on semih_s's profile.
Merhaba, sizden DSO2C10 hakkında bilgi rica ettim. Yanıtlarsanız sevinirim...
Unal taydin Unal wrote on taydin's profile.
Timur Bey, Arduino kontrollü bir akü şarj cihazı yapmaya çalışıyorum. Aklımdaki fikri basit bir çizim olarak konu açmıştım. Özellikle sizin fikirlerinizi çok önemsiyorum.
Back
Top