2017-07-10 3 views
1

J'ai un script Bash (voir ci-dessous) qui contrôle un relais via les broches GPIO. Cela fonctionne bien, mais j'ai remarqué que le processeur du Pi devient très chaud - jusqu'à 83C ou plus quand il fonctionne, à partir d'environ 40C quand le Pi est inactif.Raspberry Pi - Script Bash provoquant une surchauffe

J'ai regardé l'utilisation du processeur et le script, qui s'exécute tout le temps, utilise 16% de CPU.

Quelqu'un a-t-il des idées pour expliquer cette surchauffe?

Merci.

#!/bin/bash 

    while true; do 
    s=$(date +%S) 

    if [ $s -eq 58 -o $s -eq 28 ]; then 
    sleep 1.9 

    echo "1" > /sys/class/gpio/gpio6/value 
    sleep 0.5 
    echo "0" > /sys/class/gpio/gpio6/value 
    sleep 1 
    fi 

    done 
+2

Vous exécutez une boucle infinie, ne s'arrêtant que de temps en temps. Cela va inévitablement faire fonctionner le CPU presque aussi vite que possible! –

Répondre

1

Il y a deux choses auxquelles je pense. Vous parcourez beaucoup plus de boucles que nécessaire car il semble que vous voulez activer un relais pendant une demi-seconde toutes les 30 secondes. Vous pouvez dormir toute la boucle 1 seconde procédant comme suit

#!/bin/bash 

while true; do 
s=$(date +%S) 

if [ $s -eq 58 -o $s -eq 28 ]; then 
sleep 1.9 

echo "1" > /sys/class/gpio/gpio6/value 
sleep 0.5 
echo "0" > /sys/class/gpio/gpio6/value 
fi 

sleep 1 

done 

L'autre chose que je pense est la suivante:

Un vous extrayez un tas de plus de dessin probablement trop de courant dans le relais circuit. Avez-vous des résistances de limitation de courant en série avec le relais? C'est la première chose que je vérifierais car vous n'avez pas de calculs massifs dans votre script bash. C'est aussi très exagéré pour un Rasperry Pi, mais c'est une bête complètement différente.

1

Les broches GPIO sont conçues pour seulement quelques milliampères. Pas assez pour faire fonctionner la plupart des relais sans un boost d'un transistor ou Darlington, en fonction du type de relais. Une polarisation correcte du transistor limitera le courant provenant de la broche GPIO et fournira également suffisamment de courant pour faire fonctionner le relais, s'il est choisi correctement. Sans cela, votre Pi risque de le faire, probablement. Et puis c'est parti à l'échange de pile d'électronique;)

Et comme d'autres l'ont noté, vous êtes dans une boucle serrée.