• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
con gpio problemi

Problemi con GPIO
#1
Buongiorno.

Ho un RPI4 rev B con raspian appena scaricata.
Ho problemi leggendo i GPIO.

I pullup non vanno, leggo sempre basso, allora li ho messi tutti puldown, ma qualcuno lo leggo alto.
Nello specifico i 7 8 9 10 11 15, li leggo sempre alti.

Allego il codice.

Codice:
#!/bin/bash
#  Video da GPIO

cd /home/pi

ff=1

gpio mode 0 in
gpio mode 0 down
gpio mode 1 in
gpio mode 1 down
gpio mode 2 in
gpio mode 2 down
gpio mode 3 in
gpio mode 3 down
gpio mode 4 in
gpio mode 4 down
gpio mode 5 in
gpio mode 5 down
gpio mode 6 in
gpio mode 6 down
gpio mode 7 in
gpio mode 7 down
gpio mode 8 in
gpio mode 8 down
gpio mode 9 in
gpio mode 9 down
gpio mode 10 in
gpio mode 10 down
gpio mode 11 in
gpio mode 11 down
gpio mode 12 in
gpio mode 12 down
gpio mode 13 in
gpio mode 13 down
gpio mode 14 in
gpio mode 14 down
gpio mode 15 in
gpio mode 15 down

while :
do
  ING0=$(gpio read 0)
  ING1=$(gpio read 1)
  ING2=$(gpio read 2)
  ING3=$(gpio read 3)
  ING4=$(gpio read 4)
  ING5=$(gpio read 5)
  ING6=$(gpio read 6)
  ING7=$(gpio read 7)
  ING8=$(gpio read 8)
  ING9=$(gpio read 9)
  ING10=$(gpio read 10)
  ING11=$(gpio read 11)
  ING12=$(gpio read 12)
  ING13=$(gpio read 13)
  ING14=$(gpio read 14)
  ING15=$(gpio read 15)
  ING=$(( 0 + ING0 + ING1 + ING2 + ING3 + ING4 + ING5 + ING6 + ING7 + ING8 + ING9 + ING10 + ING11 +    ING12 + ING13 + ING14 + ING15 ))

  sleep 0.1

  if [ "$ff" = "1" ]; then
    echo "TOT" $ING
    if [ $ING != "0" ]; then

      if [ $ING0 = "1" ]; then
echo "ING0"
        fi
    if [ $ING1 = "1" ]; then
echo "ING1"
      fi
    if [ $ING2 = "1" ]; then
echo "ING2"
      fi
    if [ $ING3 = "1" ]; then
echo "ING3"
      fi
    if [ $ING4 = "1" ]; then
echo "ING4"
      fi
    if [ $ING5 = "1" ]; then
echo "ING5"
      fi
    if [ $ING6 = "1" ]; then
echo "ING6"
      fi
    if [ $ING7 = "1" ]; then
echo "ING7"
      fi
    if [ $ING8 = "1" ]; then
echo "ING8"
      fi
    if [ $ING9 = "1" ]; then
echo "ING9"
      fi
    if [ $ING10 = "1" ]; then
echo "ING10"
      fi
    if [ $ING11 = "1" ]; then
echo "ING11"
      fi
    if [ $ING12 = "1" ]; then
echo "ING12"
      fi
    if [ $ING13 = "1" ]; then
echo "ING13"
      fi
    if [ $ING14 = "1" ]; then
echo "ING14"
        fi
    if [ $ING15 = "1" ]; then
echo "ING15"
      fi
      ff=0
    fi
  else
    if [ $ING  = "0" ]; then
      ff=1
    fi
  fi
done
Risposta
#2
Prova a leggere questa discussione
https://github.com/Pi4J/pi4j/issues/471

Problema confermato.

WiringPi v2.52 ha aggiunto il supporto per RPi 4B ma non include modifiche per gestire correttamente i pin PULL UP/DOWN.

L'utilizzo di WiringPi v2.60 non ufficiale ( https://github.com/WiringPi/WiringPi ) come suggerito da @eitch risolve questo problema.
Ho aggiunto commenti nella documentazione del sito per la versione di Pi4J v1.3 e uno script di installazione per renderlo il più semplice possibile.

Vedere:

https://pi4j.com/1.3/install.html#Wiring...ve_Library
https://webtechie.be/post/2020-10-10-pi4...erry-pi-4/
Heart Libro  | Blog EnricoSartori.it | Idea YouTube
Se un utente ti è stato utile, aumenta la sua reputazione! premi il Pollicione! 
Risposta
#3
Sto cercando di lanciare questo script.

Codice:
sudo apt-get remove wiringpi -y
sudo apt-get --force-yes --yes install git-core gcc make
cd /opt/pi4j
git clone https://github.com/WiringPi/WiringPi --branch master --single-branch wiringpi
cd /opt/pi4j/wiringpi
sudo ./build uninstall
sudo ./build clean
sudo ./build


Ma mi da un sacco di errori che non capisco

Codice:
--------------------------------------------
Uninstalling any existing WiringPi versions
--------------------------------------------
E: Opzione a riga di comando "
  " [da -y
  ] non riconosciuta in combinazione con le altre opzioni.
Lettura elenco dei pacchetti... Fatto
Generazione albero delle dipendenze     
Lettura informazioni sullo stato... Fatto
Nota, viene selezionato "git" al posto di "git-core"
W: --force-yes è deprecata, utilizzare una delle opzioni che iniziano con --allow.
E: Impossibile trovare il pacchetto make
--------------------------------------------
Cloning latest WiringPi sources from repo 
--------------------------------------------
1.sh: 9: cd: can't cd to /opt/pi4j
fatal: il path di destinazione 'wiringpi?' esiste già e non è una directory vuota.
1.sh: 11: cd: can't cd to /opt/pi4j/wiringpi
--------------------------------------------
Building and installing WiringPi library
--------------------------------------------
sudo: ./build: comando non trovato
sudo: ./build: comando non trovato
sudo: ./build: comando non trovato

Nonostante che abbia messo build essential.
Codice:
sudo apt update
sudo apt install -y build-essential

Però qualche giorno fa, visto che mi dava errore che non capiva la scheda su cui girava, avevo installato qualcosa tipo, Debian ? Soluzione trovata su google ma bo.
Risposta
#4
Per quegli errori prova a scrivere nel git dove hai trovato il pacchetto
Heart Libro  | Blog EnricoSartori.it | Idea YouTube
Se un utente ti è stato utile, aumenta la sua reputazione! premi il Pollicione! 
Risposta
#5
Con queste modifiche e ignorando gli errori in parte va.

sudo mkdir 
sudo git clone https://github.com/WiringPi/WiringPi --branch master --single-branch wiringpi

Però credo ci sia un errore nei sorgenti, per qualche GPIO
Se definisco i primi 16 pull-down, due li leggo alti. il 8 e il 9


Non so se l'errore è nel pull o nell'ingresso.
Risposta
#6
un rapido test con python e una libreria moderna come gpiozero ?
Risposta
  


Vai al forum:


Navigazione: 3 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect