PWM ne fonctionne plus après 40° sur le SoC

Bonjour,

J’utilise le script et le montage donné dans ce lien : https://www.framboise314.fr/variation-de-puissance-electrique-via-raspberry/

A la seule différence que j’utilise 4 sortie PWM pour 4 moteurs différents.
Lorsque le SoC du PI arrive vers les 40° le duty passe a 100%, il n’y a pas de crash ou autre. Si je braque un ventilateur sur le dissipateur du PI et qu’il revient vers les 32° alors cela fonctionne a nouveau.

Avez vous une idée pour supprimer ce phénomène bien embêtant ? x)

Pourquoi ne pas y mettre un ventilo?
Kit officiel ou alternatif les prix de mémoire sont inférieurs à 10balles.

Je pense qu’il faut un schéma de ton montage pour que l’on comprenne mieux, aussi des infos sur le software utilisé et ton modèle de Raspberry pi.

Le truc qui me vient immédiatement à l’esprit sans avoir regarder le lien c’est que si le script et en python alors ça ne m’étonne qu’à moitié que le Pi hurle à la mort. Sur mon pi de test rien que d’utiliser un écran en SDA/SCL le rend déjà à moitié léthargique alors qu’en C c’est quasiment imperceptible.

Il est plus compliqué d’utiliser les GPIO avec du code en C mais c’est diablement plus efficace pour la gestion de la puissance de calcul du pi.

Bonjour,

Merci pour vos réponses.
J’ai trouvé d’où vient le problème.

Le Pi n’a que deux sortie PWM possible sur 4 pins, donc 2x2.
La librairie utilisait en Python ne retourne pas d’erreur lorsqu’on essai d’utiliser plus de 2 sorties PWM et sur des sorties non prévue pour cela.

A l’avenir pour les fonctions autres que PWM je pense passer par :

pigpio

et pour le PWM :

board
adafruit_pca9685

Il reste le mystère du fait que ca fonctionne vers 30° mais pas au delà. Peut être une partie du processeur trop sollicité en software pour une tache non prévue en hardware, j’espère ne pas l’avoir endommagé T__T

Je vais tenter de passer par une carte additionnelle : https://eu.robotshop.com/fr/products/controleur-servomoteurs-pwm-16-canaux-pour-raspberry-pi-waveshare

Ca a l’air assez simple d’utilisation sur un Pi.

# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
# SPDX-License-Identifier: MIT
# Outputs a 50% duty cycle PWM single on the 0th channel.
# Connect an LED and resistor in series to the pin
# to visualize duty cycle changes and its impact on brightness.
import board
from adafruit_pca9685 import PCA9685
# Create the I2C bus interface.
i2c = board.I2C() # uses board.SCL and board.SDA
# i2c = busio.I2C(board.GP1, board.GP0) # Pi Pico RP2040
# Create a simple PCA9685 class instance.
pca = PCA9685(i2c)
# Set the PWM frequency to 60hz.
pca.frequency = 60
# Set the PWM duty cycle for channel zero to 50%. duty_cycle is 16 bits to match
other PWM objects
# but the PCA9685 will only actually give 12 bits of resolution.
pca.channels[0].duty_cycle = 0x7FFF

Je ferais un post complet avec tous mes tests a la fin en réponse a mes différents post parce que j’ai fouillé partout mais difficile d’avoir des réponses bien claires sur ce genre de montage.

Encore merci pour votre aide et vos réponses.

1 « J'aime »