Antonio-1 escreveu:
"
import RPI.GPIO
import time
gpio.setmode(gpio.BCM)
gpio.setup(9,gpio.out)
gpio.setup(9,gpio.HIGT)
time.sleep(0,5)
gpio.cleanup()
"
este código tem erro?
Sim tem erro.
Esse código tem erro porque HIGH está mal escrito.
e no python3 é
Voltei a editar porque o setup está incorreto,
GPIO.setup(9, GPIO.OUT, initial=GPIO.LOW) # Set pin
GPIO.output(9, GPIO.HIGH) # Turn on
Nota muito importante
Python is a case-sensitive language
Uma variável chamada xpto é diferente de Xpto. Não confunda com o windows que não varia em relação a maiúsculas e minúsculas. A mesma coisa para o Linux e php.
Eu não uso essa rotina uso outra...
Isto vai ficar disponível na área do site logo que tenha tempo.
Nós podemos definir os pinos do RPI como BOARD ou com BCM
A instrução do rpi.gpio é:
(é a numeração do BCM)
ou
(é a numeração direta da placa)
Vamos supor que queremos ligar um pino(38), temos muitos pinos para ligar e desligar assim, teríamos de fazer uma rotina para cada um. Ora o python aceita argumentos tipo, led.py 38 em que o 38 será o pino da board 38, com a board configurada para BOARD.
Assim, com uma pequena rotina, podemos ligar qualquer um dos pinos apenas com um comando
import RPi.GPIO as GPIO # Import Pi GPIO
import sys
pino = int(sys.argv[1])
from time import sleep # Import sleep from time module
GPIO.setwarnings(False) # Ignore warning for now
GPIO.setmode(GPIO.BOARD) # Use physical pin numbering
GPIO.setup(pino, GPIO.OUT, initial=GPIO.LOW) # Set pin
GPIO.output(pino, GPIO.HIGH) # Turn on
Supondo que esta rotina se chama led_on.py
para ligar o led basta digitar no terminal
se for o led na saída 40
Para desligar temos outra rotina que nos dá para desligar qualquer pino
import RPi.GPIO as GPIO # Import Pi GPIO library
import sys
pino = int(sys.argv[1])
from time import sleep # Import sleep from time module
GPIO.setwarnings(False) # Ignore warning for now
GPIO.setmode(GPIO.BOARD) # Use physical pin numbering
GPIO.setup(pino, GPIO.OUT, initial=GPIO.LOW) # Set pin
GPIO.output(pino, GPIO.LOW) # Turn off
GPIO.cleanup()
E agora como ligamos e desligamos quando estamos fora de casa
com o nosso telemóvel???
O python não foi desenvolvido tendo como prioridade a utilização de output no webserver, assim, usamos o php
<?php
shell_exec('sudo python3 /path/led_on.py 40');
?>
<?php
shell_exec('sudo python3 /path/led_off.py 40');
?>
Mesmo com o windows, podemos instalar o nosso servidor o WAMP ou XAMP e criar uma página de web com botões ON/OFF cada um ligando e desligando um pino do RPi...
Este tipo de coisas muito simples no RPi são muito difíceis de fazer no Arduino exigindo uma série de shields e algumas horas de programação.
Os testes de leds a piscar servem apenas para testar se funciona o output ou não, até sugeria o seguinte que uso em algumas temporizações, colocar o led a piscar 5 vezes e desligar depois. Isso ensina-nos a base dos "loops" e dos ciclos "for next" que existem em qualquer linguagem que são muito importantes na verificação, por exemplo dos estados de cada uma das portas.
Para complementar;
E agora como ligamos qualquer coisa de 220V em vez do LED?
Tanto no arduino como no raspberry, basta fazer este pequeno circuito
Atuar 220V no Arduino ou no Raspeberry
Se tivermos o sinal de 5V na saída liga qualquer coisa de 220V, sem sinal, desliga.