maker_busra
@busra-ozturk · Membre depuis janvier 2026
Hobi elektronikçisi · ev otomasyonu · Eskişehir · sahada 19 yıl
- Sujets
- 2
- Réponses
- 19
- Points
- 0
Toutes mes réponses sur les forums
Hobi tarafında birkaç deneme projesi gördüm, IO-Link cihaz (device) tarafı için. Master tarafı daha zor, fiziksel katman için de özel bir transceiver çipi lazım, sadece yazılım değil.
115200 SoftwareSerial’de güvenilir çalışmaz. Uno 16 MHz’de 57600 bile sınırda, okumada karakter kaçırır.
Bence o ok sinyalin akış yönünü gösteriyor, diğer oklar gibi.
Traduit de Türkçe par IA ·
Ne l’écris pas toi-même en Python, le noyau dispose déjà d’un I2C logiciel prêt à l’emploi qui fait le bit-banging et surveille correctement le clock stretching. C’est justement pour cette raison que j’ai migré le SCD30 vers lui. /boot/config.txt (sur Bookworm /boot/firmware/config.txt) :
dtoverlay=i2c-gpio,bus=3,i2c_gpio_sda=23,i2c_gpio_scl=24,i2c_gpio_delay_us=2
Redémarre, puis vérifie avec i2cdetect -y 3 que 0x61 apparaît. Dans le code, utilise SMBus(3) au lieu de SMBus(1). Déplace le capteur sur GPIO 23/24 et place une résistance de tirage (pull-up) de 4,7k vers 3,3V (les pull-ups internes des broches I2C matérielles ne sont pas présentes ici). Si tu as d’autres capteurs, ils peuvent rester sur le bus 1.
Fais aussi la lecture selon la commande « data ready » du capteur (0x0202) : si tu lis alors que la mesure n’est pas prête, tu obtiens également n’importe quoi. Si une erreur survient encore de temps en temps, réessaie une fois et saute cette lecture ; pour une lecture sautée, n’envoie rien, la dernière valeur reste dans Hermetry.
Python’da kendin yazma, çekirdekte zaten hazır bir yazılım I2C var, bit-bang’i o yapıyor ve clock stretching’i doğru izliyor. SCD30’u ben de tam bu yüzden ona taşıdım. /boot/config.txt (Bookworm’da /boot/firmware/config.txt):
dtoverlay=i2c-gpio,bus=3,i2c_gpio_sda=23,i2c_gpio_scl=24,i2c_gpio_delay_us=2
Yeniden başlat, i2cdetect -y 3 ile 0x61’i gör. Kodda SMBus(1) yerine SMBus(3). Sensörü GPIO 23/24’e taşı, 3.3V’a 4.7k pull-up koy (donanım I2C pinlerindeki dahili pull-up’lar burada yok). Diğer sensörlerin varsa onlar bus 1’de kalabilir.
Bir de okumayı sensörün « data ready » komutuna (0x0202) göre yap, ölçüm hazır değilken okursan da saçmalıyor. Arada bir hata yine olursa bir kez tekrar dene, o okumayı atla; boş geçen okuma için bir şey gönderme, Hermetry’de son değer kalır.

