Python Tutorial (001 100)
Python Tutorial (001 100)
Bem-vindo
Como começar
Ao ler isto, você deve ter baixado o arquivo ZIP deste produto.
Descompacte-o e você obterá uma pasta contendo tutoriais e arquivos relacionados. Comece com este tutorial em PDF.
Obtenha suporte
Quando houver danos na embalagem, problemas de qualidade, dúvidas de uso, etc., basta nos enviar um e-mail. Responderemos dentro
de um dia útil e forneceremos uma solução.
Atenção
ÿ Este produto não é adequado para crianças menores de 12 anos de idade devido às peças pequenas e pontiagudas. ÿ Menores
devem usar este produto sob a supervisão e orientação de adultos. ÿ Este produto contém peças
pequenas e afiadas. Não engula, pique e arranhe para evitar ferimentos. ÿ Este produto contém peças condutoras. Não os
segure para tocar na fonte de alimentação e em outros circuitos. ÿ Para evitar ferimentos pessoais, não toque nas peças giratórias ou
em movimento durante o trabalho. ÿ A operação incorreta pode causar superaquecimento. Não toque e
desconecte a fonte de alimentação imediatamente. ÿ Opere de acordo com os requisitos do tutorial. Não fazer isso pode danificar as peças.
ÿ Armazene este produto em um ambiente seco e escuro. Mantenha longe do alcance das crianças. ÿ Desligue a energia do
circuito antes de sair.
Sobre
A Freenove está empenhada em ajudar os clientes a aprender programação e conhecimento eletrônico, implementar
rapidamente protótipos de produtos, concretizar sua criatividade e lançar produtos inovadores. Nossos serviços incluem:
Para saber mais sobre nós ou obter nossas informações mais recentes, visite nosso site:
http://www.freenove.com
direito autoral
Todos os arquivos fornecidos no arquivo ZIP são liberados sob a licença Creative Commons Attribution-NonCommercial-ShareAlike 3.0
Unported. Você pode encontrar uma cópia da licença no arquivo ZIP.
Isso significa que você pode usar esses arquivos em seus próprios trabalhos derivados, parcial ou totalmente. Mas não para fins comerciais
usar.
A marca e o logotipo Freenove® são marcas registradas da Freenove Creative Technology Co., Ltd. Não devem ser usados sem permissão.
MT
ÿwww.freenove.com Conteúdo 1
Conteúdo
ÿwww.freenove.com Conteúdo 3
ÿwww.freenove.com Prepare 5
Preparar
ESP32 é uma unidade de microcontrole com Wi-Fi integrado lançada pela Espressif, que apresenta propriedades fortes e integra periféricos
ricos. Ele pode ser projetado e estudado como um chip comum Single Chip Micyoco (SCM) ou conectado à Internet e usado como um
dispositivo de Internet das Coisas.
ESP32 pode ser desenvolvido tanto em linguagem C/C++ quanto em linguagem micropython. Neste tutorial, usamos micropython. Com
Micropython é tão fácil de aprender quanto Python com pouco código, tornando-o ideal para iniciantes.
Além disso, o código do ESP32 é totalmente de código aberto, para que os iniciantes possam aprender rapidamente como desenvolver e
projetar produtos domésticos inteligentes IOT, incluindo cortinas, ventiladores, lâmpadas e relógios inteligentes.
Dividimos cada projeto em quatro partes, nomeadamente Lista de Componentes, Conhecimento de Componentes, Circuito e Código.
A Lista de Componentes ajuda você a preparar o material para o experimento mais rapidamente. O Component Knowledge permite que
você entenda rapidamente novos módulos ou componentes eletrônicos, enquanto o Circuit ajuda a entender o princípio de operação do
circuito. E o Code permite que você domine facilmente o uso do ESP32 e seu kit de acessórios.
Depois de concluir todos os projetos deste tutorial, você também poderá usar esses componentes e módulos para criar produtos como
residências inteligentes, carros inteligentes e robôs para transformar suas ideias criativas em protótipos e produtos novos e inovadores.
Além disso, se você tiver alguma dificuldade ou dúvida com este tutorial ou kit de ferramentas, sinta-se à vontade para solicitar nosso
suporte técnico rápido e gratuito através de [email protected]
6 Prepare www.freenove.com ÿ
ESP32-WROVER
ESP32-WROVER lançou um total de dois pacotes de antenas, antena PCB on-board e antena IPEX, respectivamente. A antena PCB on-
board é uma antena integrada no próprio módulo do chip, por isso é fácil de transportar e projetar. A antena IPEX é uma antena metálica
derivada da antena integrada do próprio módulo do chip, que é usada para potencializar o sinal do módulo.
Neste tutorial, o ESP32-WROVER é projetado com base no pacote de antena PCB on-board.
ESP32-WROVER
ÿwww.freenove.com Preparar 7
Compare as imagens esquerda e direita. Colocamos os recursos do ESP32-WROVER em cores diferentes para facilitar sua compreensão do
ESP32-WROVER.
Cor da caixa Introdução de recursos correspondentes
Pino GPIO
Indicador LED
Interface da câmera
porta USB
8 Prepare www.freenove.com ÿ
E também projetamos uma placa de extensão, para que você possa usar o ESP32 com mais facilidade de acordo com o diagrama de
circuito fornecido. A seguir estão suas fotos. Todos os projetos deste tutorial são estudados com este
ESP32-WROVER.
As interfaces de hardware do ESP32-WROVER são distribuídas da seguinte forma:
Pino GPIO
Indicador LED
No ESP32, GPIO é uma interface para controlar circuitos periféricos. Para iniciantes é necessário aprender as funções de cada
GPIO. A seguir está uma introdução aos recursos GPIO do ESP32-WROVER
quadro de desenvolvimento.
Posteriormente, usamos apenas o cabo USB para alimentar o ESP32-WROVER por padrão.
Em todo o tutorial, não usamos a extensão T para alimentar o ESP32-WROVER. Portanto, 5V e 3,3V (inclui EXT 3,3V) na placa de extensão
são do ESP32-WROVER.
Também podemos usar o conector DC da placa de extensão para alimentar o ESP32-WROVER. Então 5v e EXT 3,3v na placa de extensão
são provenientes de fonte de alimentação externa.
Para mais informações, visite: https://
www.espressif.com/sites/default/files/documentation/esp32-wrover_datasheet_en.pdf
Antes de começar a construir os projetos, é preciso primeiro fazer alguns preparativos, que são tão cruciais que você não
deve pular.
Thonny é uma plataforma de software gratuita e de código aberto com tamanho compacto, interface simples, operação simples
e funções ricas, tornando-o um IDE Python para iniciantes. Neste tutorial, utilizamos este IDE para desenvolver o ESP32
durante todo o processo.
Thonny suporta vários sistemas operacionais, incluindo Windows, Mac OS, Linux.
Baixando Thonny
Siga as instruções do site oficial para instalar o Thonny ou clique nos links abaixo para baixar e instalar.
(Selecione o apropriado com base no seu sistema operacional.)
Operativo Baixar links/métodos
Sistema
Windows https://github.com/thonny/thonny/releases/download/v3.2.7/thonny-3.2.7.exe
Mac OS https://github.com/thonny/thonny/releases/download/v3.2.7/thonny-3.2.7.pkg
A última versão:
Com pip:
pip3 instalar o thonny
Linux
Fedor:
Instalando no Windows
Se você não estiver familiarizado com a instalação de software de computador, basta continuar clicando em “Avançar” até que a
instalação seja concluída.
Se quiser alterar o caminho de instalação do Thonny, você pode clicar em “Navegar” para modificá-lo. Após selecionar o caminho de
instalação, clique em “OK”.
Caso não queira alterá-lo, basta clicar em “Avançar”.
Marque “Criar ícone na área de trabalho” e então será gerado um atalho na sua área de trabalho para facilitar a abertura do Thonny
mais tarde.
Durante o processo de instalação, você só precisa aguardar a conclusão da instalação e não clicar em "Cancelar", caso
contrário o Thonny não será instalado.
Se você marcou “Criar ícone na área de trabalho” durante o processo de instalação, poderá ver o ícone abaixo em sua área
de trabalho.ÿ
Clique no ícone do Thonny na área de trabalho e você poderá ver a interface dele da seguinte maneira:
Barra de menu
Gerenciamento de arquivos
Editor de código
Concha
ESP32 usa CH340 para baixar códigos. Portanto, antes de usá-lo, precisamos instalar o driver CH340 em nossos computadores.
janelas
2. Vá para a interface principal do seu computador, selecione “Este PC” e clique com o botão direito para selecionar “Gerenciar”.
3. Clique em “Gerenciador de Dispositivos”. Se o seu computador tiver instalado o CH340, você poderá ver “USB-SERIAL CH340 (COMx)”.
E você pode clicar aqui para passar para a próxima etapa.
Porta CH340
Instalando CH340
1. Primeiro, baixe o driver CH340, clique em http://www.wch-ic.com/search?q=CH340&t=downloads para baixar o
driver apropriado com base no seu sistema operacional.
janelas
Linux
MAC
6. Quando o ESP32 estiver conectado ao computador, selecione “Este PC”, clique com o botão direito para selecionar “Gerenciar” e clique em “Dispositivo
Manager” na nova caixa de diálogo pop-up e você poderá ver a seguinte interface.
7. Até agora, o CH340 foi instalado com sucesso. Feche todas as caixas de diálogo.
MAC
Primeiro, baixe o driver CH340, clique em http://www.wch-ic.com/search?q=CH340&t=downloads para baixar o driver apropriado com
base no seu sistema operacional.
janelas
Linux
MAC
Executá-lo.
Se você ainda não instalou o CH340 seguindo as etapas acima, você pode visualizar readme.pdf para instalá-lo.
Leia-me
Para executar programas Python no ESP32, precisamos primeiro gravar um firmware no ESP32.
Certifique-se de que o driver tenha sido instalado com sucesso e que possa reconhecer a porta COM corretamente. Abra o
gerenciador de dispositivos e expanda “Portas”.
COMx
Nota: o porto de pessoas diferentes pode ser diferente, o que é uma situação normal.
2. Selecione “Micropython (ESP32)”, selecione “USB-SERIAL CH340 (COM4)” e clique no botão longo
em “Firmware”.
Clique
3. A seguinte caixa de diálogo é exibida. Selecione “USB-SERIAL CH340 (COM3)” para “Porta” e clique em “Navegar...”. Selecione o firmware
Marque “Apagar flash antes de instalar” e clique em “instalar” para aguardar o aviso de conclusão da instalação.
Clique
Clique
Clique
5. Feche todas as caixas de diálogo, vá para a interface principal e clique em “STOP”. Como mostrado na ilustração abaixo
Botão de parada
Correndo on-line
O ESP32 precisa estar conectado a um computador quando for executado online. Os usuários podem usar Thonny para escrever e depurar
programas.
1. Abra o Thonny e clique em “Abrir…”.
Abrir…
Clique
“Freenove_Ultimate_Starter_Kit_for_ESP32/Python/Python_Codes/00.0_HelloWorld” .
Clique
Clique em “Executar script atual” para executar o programa e “Hello World” será impresso em “Shell”.
Clique
Nota: Ao executar online, se você pressionar a tecla reset do ESP32, o código do usuário não será executado novamente. Se você deseja executar
Executando offlineÿImportânciaÿ
Após a redefinição do ESP32, ele executa primeiro o arquivo boot.py no diretório raiz e depois executa o arquivo main.py e, por fim, entra
em “Shell”. Portanto, para fazer o ESP32 executar os programas do usuário após a reinicialização, precisamos adicionar um programa
orientador em boot.py para executar o código do usuário.
1. Mova a pasta do programa “Freenove_Ultimate_Starter_Kit_for_ESP32/Python/Python_Codes” para
disk(D) antecipadamente com o caminho “D:/Micropython_Codes”. Abra “Thonny”ÿ
2. Expanda “00.1_Boot” em “Micropython_Codes” no diretório do disco (D) e clique duas vezes em boot.py,
que é fornecido por nós para permitir que programas em “dispositivo MicroPython” sejam executados offline.
Se quiser que seus programas escritos sejam executados offline, você precisa fazer upload do boot.py que fornecemos e de todos os seus
códigos para o “dispositivo MicroPython” e pressionar a tecla de reinicialização do ESP32. Aqui usamos os programas 00.0 e 00.1 como
exemplos. Selecione “boot.py”, clique com o botão direito para selecionar “Carregar para /”.
3. Pressione a tecla reset e na caixa da ilustração abaixo você verá que o código é executado.
Cada vez que o ESP32 for reiniciado, se houver um “boot.py” no diretório raiz, ele executará este código primeiro.
automaticamente.
Selecione “Blink.py” em “01.1_Blink”, clique com o botão direito do mouse e selecione “Upload to /” para fazer upload do código para o
Selecione “boot.py” em “Dispositivo MicroPython”, clique com o botão direito para selecionar “Baixar para ...” para baixar o código para o seu
computador.
Selecione “boot.py” em “Dispositivo MicroPython”, clique com o botão direito e selecione “Excluir” para excluir “boot.py” do diretório raiz do
ESP32.
Selecione “boot.py” em “00.1_Boot”, clique com o botão direito e selecione “Mover para a Lixeira” para excluí-lo de “00.1_Boot”.
Insira os códigos no arquivo recém-aberto. Aqui usamos os códigos “01.1_Blink.py” como exemplo.
Clique em “Salvar” na barra de menu. Você pode salvar os códigos no seu computador ou no ESP32-WROVER.
Salvar
Selecione “Dispositivo MicroPython”, digite “main.py” na nova janela pop-up e clique em “OK”.
Clique
Desconecte e reconecte o cabo USB e você verá que o LED fica LIGADO por um segundo e depois DESLIGADO por
um segundo, o que se repete em um loop infinito.
0,7 Nota
Embora existam muitos pinos disponíveis no ESP32, alguns deles foram conectados a equipamentos periféricos, portanto, devemos
evitar o uso de tais pinos para evitar conflitos de pinos. Por exemplo, ao baixar programas, certifique-se de que o estado do pino do
Strapping Pin, ao redefinir, seja consistente com o nível padrão; NÃO use Flash Pin; NÃO use Cam Pin ao usar a função Câmera.
Alfinete de cinta
O estado do Strapping Pin pode afetar as funções do ESP32 após seu reset, conforme mostrado na tabela abaixo.
Se você tiver alguma dificuldade ou dúvida com este tutorial ou kit de ferramentas, sinta-se à vontade para solicitar nosso suporte
técnico rápido e gratuito através de [email protected] a qualquer momento.
ou verifique: https://www.espressif.com/sites/default/files/documentation/esp32-wrover_datasheet_en.pdf
Pin Flash
GPIO6-11 foi usado para conectar o flash SPI integrado no módulo e é usado quando o GPIO 0 está ligado e em alto nível. O flash
está relacionado ao funcionamento de todo o chip, portanto o pino externo GPIO6-11 não pode ser utilizado como pino experimental
para circuitos externos, caso contrário pode causar erros no funcionamento do programa.
Pino da câmera
Ao usar a câmera cam do nosso ESP32-WROVER, verifique os pinos dela. Pinos com números sublinhados são utilizados pela
função câmera cam, caso queira utilizar outras funções além dela, evite utilizá-los.
CAM_Pin GPIO_pin
I2C_SDA GPIO26
I2C_SCL GPIO27
CSI_VYSNC GPIO25
CSI_HREF GPIO23
CSI_Y9 GPIO35
XCLK GPIO21
CSI_Y8 GPIO34
CSI_Y7 GPIO39
CSI_PCLK GPIO22
CSI_Y6 GPIO36
CSI_Y2 GPIO4
CSI_Y5 GPIO19
CSI_Y3 GPIO5
CSI_Y4 GPIO18
Se você tiver alguma dúvida sobre as informações do GPIO, clique aqui para voltar ao ESP32-WROVER
Ou verifique: https://www.espressif.com/sites/default/files/documentation/esp32-wrover_datasheet_en.pdf.
Lista de Componentes
Poder
ESP32-WROVER precisa de fonte de alimentação de 5v. Neste tutorial, precisamos conectar o ESP32-WROVER ao computador via
Cabo USB para alimentá-lo e programá-lo. Também podemos usar outra fonte de energia de 5 V para alimentá-lo.
Nos projetos a seguir, usamos apenas o cabo USB para alimentar o ESP32-WROVER por padrão.
Em todo o tutorial, não usamos a extensão T para alimentar o ESP32-WROVER. Portanto, 5 V e 3,3 V (incluindo EXT 3,3 V) na placa de
extensão são fornecidos pelo ESP32-WROVER.
Também podemos usar o conector DC da placa de extensão para alimentar o ESP32-WROVER. Desta forma, 5 V e EXT 3,3 V na placa
de extensão são fornecidos por recursos de energia externos.
Código
01.1_Piscar
Abra “Thonny”, clique em “Este computador”ÿ“D:”ÿ“Micropython_Codes”.
Expanda a pasta “01.1_Blink” e clique duas vezes em “Blink.py” para abri-la. Conforme mostrado na ilustração abaixo.
Certifique-se de que o ESP32 esteja conectado corretamente ao computador com ESP32. Clique em “Parar/Reiniciar backend”
ou pressione o botão reset e espere para ver qual interface aparecerá.
1, Parar/Reiniciar back-end
Isso indica
que o
conexão é
bem-sucedido.
Clique em “Executar script atual” mostrado na caixa acima, o código começa a ser executado e o LED do circuito começa a piscar.
led.valor(0) led.valor(1)
Observação:
Este é o código em execução online. Se você desconectar o cabo USB e religar o ESP32 ou pressionar a tecla reset, o
LED parará de piscar e as seguintes mensagens serão exibidas no Thonny.
Conforme mostrado na ilustração a seguir, clique com o botão direito no arquivo Blink.py e selecione “Upload to /” para fazer upload do código para
ESP32.
Certifique-se de ter
carregado Blink.py e boot.py
aqui,
Pressione a tecla reset do ESP32 e você verá que o LED está LIGADO por um segundo e depois DESLIGADO por um segundo, o que
se repete em um loop infinito.
led.valor(0) led.valor(1)
Observação:
Os códigos aqui são executados offline. Se você quiser parar de correr offline e entrar no Shell, basta clicar em “Parar” no Thonny.
Parar/reiniciar back-end
Se você tiver alguma dúvida, entre em contato conosco através de: [email protected]
3
4 led=Pin(2,Pin.OUT) #cria objeto LED do pino2, define Pin2 para saída
5 tentar:
6 enquanto Verdadeiro:
8 dormir_ms(1000)
10 dormir_ms(1000)
11 exceto:
12 passar
Cada vez que um novo arquivo é aberto, o programa será executado de cima para baixo. Ao encontrar uma construção de loop, ele
executará a instrução de loop de acordo com a condição do loop.
Configurar 1 de hora em que importa sleep_ms
Laço 5 tentar:
6 enquanto Verdadeiro:
… ...
11 exceto:
12 passar
A função Print() é usada para imprimir dados no Terminal. Ele pode ser executado diretamente no Terminal ou escrito em um arquivo
Python e executado executando o arquivo. imprimir(“Olá
mundo!”)
Cada vez que utilizar as funções do ESP32, é necessário importar os módulos correspondentes a essas funções: Importe o módulo
sleep_ms do módulo de tempo e o módulo Pin do módulo da máquina.
1 de hora em que importa sleep_ms
Configure o GPIO2 do ESP32-WROVER para o modo de saída e atribua-o a um objeto denominado “led”.
4 led=Pin(2,Pin.OUT) #cria objeto LED do pino2, define Pin2 para saída
Isso significa que a partir de agora o LED representa o GPIO2 que está em modo de saída.
Defina o valor do LED como 1 e o GPIO2 produzirá alto nível. led.value(1)
… …
Coloque instruções que podem causar um erro no bloco “try” e as instruções em execução quando ocorrer um erro no bloco “except”.
Em geral, quando o programa executa instruções, ele executa aquelas do bloco “try”.
Porém, quando ocorrer um erro no ESP32 devido a alguma interferência ou outros motivos, ele executará
… ...
11 exceto:
12 passar
O comentário de linha única do Micropython começa com “#” e continua até o final da linha. Os comentários nos ajudam a entender o
código. Quando os programas estão em execução, Thonny irá ignorar os comentários.
9 #Defina o led para ligar
MicroPython usa recuos para distinguir diferentes blocos de código em vez de colchetes. O número de recuos pode ser alterado, mas
deve ser consistente ao longo de um bloco. Se o recuo do mesmo bloco de código for inconsistente, causará erros durante a execução
do programa.
6 enquanto Verdadeiro:
8 dormir_ms(1000)
9 led.value(0) #Define o LED para desligar
10 dormir_ms(1000)
Se você importar o módulo diretamente deverá indicar o módulo ao qual pertence a função ou atributo ao utilizar a função ou atributo
(constante, variável) no módulo. O formato deve ser: <módulo
nome>.<função ou atributo>, caso contrário ocorrerá um erro.
Se você deseja importar apenas uma determinada função ou atributo no módulo, use a instrução from...import.
O formato é o seguinte
Ao usar a instrução “from...import” para importar a função, para evitar conflitos e para facilitar o entendimento, você pode usar a instrução
“as” para renomear a função importada, como segue
Referência
Máquina de classe
Antes de cada uso do módulo de máquina , adicione a instrução “importar máquina” no topo do arquivo python.
machine.freq(freq_val): Quando freq_val não é especificado, é para retornar à frequência atual da CPU; Caso contrário, é para definir a
valor_freq: 80000000(80MHz)ÿ160000000(160MHz)ÿ240000000(240MHz)
machine.reset(): Uma função de redefinição. Quando for chamado, o programa será reiniciado.
Desliga quaisquer funções temporariamente não utilizadas no chip e em seu relógio, o que é útil para reduzir o consumo de energia a
machine.disable_irq(): Desativa solicitações de interrupção e retorna o estado IRQ anterior. A função disable_irq() e a função enable_irq()
machine.enable_irq(state): Para reativar solicitações de interrupção. O estado do parâmetro deve ser o valor retornado da chamada
Testa a duração do nível de pulso externo no pino fornecido e retorna a duração do nível de pulso externo em microssegundos.
Quando nível de pulso = 1, testa a duração do nível alto; Quando nível de pulso = 0,
testa a duração do nível baixo.
Se o nível de configuração não for consistente com o nível de pulso atual, ele aguardará até que sejam consistentes e
então comece a cronometrar. Se o nível definido for consistente com o nível de pulso atual, a cronometragem começará imediatamente.
Quando o nível do pino for oposto ao nível definido, ele aguardará o tempo limite e retornará “-2”. Quando o nível do pino e o nível
definido são iguais, ele também aguardará o tempo limite, mas retornará “-1”. timeout_us é a duração de
tempo esgotado.
Antes de cada uso do módulo Pin , adicione a declaração “from machine import Pin” ao topo do arquivo python.
Pin.value([value]): Obtém ou define o estado do nível do pino, retorna 0 ou 1 de acordo com o nível lógico dos pinos.
Sem parâmetro, lê o nível de entrada. Com o parâmetro fornecido, é para definir o nível de saída.
valor: pode ser Verdadeiro/Falso ou 1/0.
Pin.irq(trigger, handler): Configura um manipulador de interrupção a ser chamado quando o nível do pino atende a uma condição.
acionar:
Horário de aula
Antes de cada uso do módulo time , adicione a instrução “import time” no topo do arquivo python
time.ticks_ms(): Retorna o valor incremental do contador de milissegundos, que reconta após alguns valores.
time.ticks_cpu(): Semelhante a ticks_ms() e ticks_us(), mas é mais preciso (relógio de retorno da CPU).
ticks: ticks_ms()ÿticks_us()ÿticks_cpu()
time.ticks_diff(old_t, new_t): Calcula o intervalo entre dois carimbos de data/hora, como ticks_ms(), ticks_us() ou ticks_cpu().
Lista de Componentes
Tábua de ensaio x1
Conhecimento de componentes
LIDERADO
Um LED é um tipo de diodo. Todos os diodos só funcionam se a corrente estiver fluindo na direção correta e tiverem dois pólos.
Um LED só funcionará (acenderá) se o pino mais longo (+) do LED estiver conectado à saída positiva de uma fonte de alimentação e o pino mais
curto estiver conectado ao negativo (-). A saída negativa também é conhecida como Terra (GND). Este tipo de componente é conhecido como
Todos os diodos comuns de 2 condutores são iguais nesse aspecto. Os diodos funcionam apenas se a tensão do eletrodo positivo for
maior que a do eletrodo negativo e houver uma faixa estreita de tensão operacional para a maioria dos diodos comuns de 1,9 e 3,4V.
Se você usar muito mais que 3,3 V, o LED será danificado e queimará.
Nota: Os LEDs não podem ser conectados diretamente a uma fonte de alimentação, que geralmente termina em um componente
danificado. Um resistor com um valor de resistência especificado deve ser conectado em série ao LED que você planeja usar.
Resistor
Os resistores usam Ohms (ÿ) como unidade de medida de sua resistência (R). 1Mÿ=1000kÿ, 1kÿ=1000ÿ.
Um resistor é um componente elétrico passivo que limita ou regula o fluxo de corrente em um circuito eletrônico.
À esquerda vemos uma representação física de um resistor, e à direita está o símbolo usado para representar a presença de um
resistor em um diagrama de circuito ou esquemático.
As faixas coloridas em um resistor são um código abreviado usado para identificar seu valor de resistência. Para obter mais detalhes
sobre os códigos de cores dos resistores, consulte o apêndice deste tutorial.
Com uma tensão fixa, haverá menos saída de corrente com maior resistência adicionada ao circuito. A relação entre Corrente,
Tensão e Resistência pode ser expressa por esta fórmula: I=V/R conhecida como Lei de Ohm onde I = Corrente, V = Tensão e R
= Resistência. Conhecer os valores de quaisquer dois deles permite resolver o valor do terceiro.
AVISO: Nunca conecte os dois pólos de uma fonte de alimentação com algo de baixo valor de resistência (ou seja, um objeto de metal ou
fio desencapado). Isso é um curto-circuito e resulta em alta corrente que pode danificar a fonte de alimentação e os componentes eletrônicos.
componentes.
Nota: Ao contrário dos LEDs e diodos, os resistores não têm pólos e são apolares (não importa em que direção você os insere em um
circuito, ele funcionará da mesma forma)
Tábua de ensaio
Aqui temos uma pequena placa de ensaio como exemplo de como as fileiras de furos (soquetes) são fixadas eletricamente.
A imagem à esquerda mostra como conectar os pinos. A imagem certa mostra a estrutura interna prática.
Poder
ESP32-WROVER precisa de fonte de alimentação de 5v. Neste tutorial, precisamos conectar o ESP32-WROVER ao computador via
Cabo USB para alimentá-lo e programá-lo. Também podemos usar outra fonte de energia de 5 V para alimentá-lo.
Posteriormente, usamos apenas o cabo USB para alimentar o ESP32-WROVER por padrão.
Em todo o tutorial, não usamos a extensão T para alimentar o ESP32-WROVER. Portanto, 5 V e 3,3 V (inclui EXT 3,3 V)
na placa de extensão são do ESP32-WROVER.
Também podemos usar o conector DC da placa de extensão para alimentar o ESP32-WROVER. Então 5v e EXT 3,3v na placa de extensão
são provenientes de fonte de alimentação externa.
O circuito
Primeiro, desconecte toda a alimentação do ESP32-WROVER. Em seguida, construa o circuito de acordo com os diagramas de circuito
e hardware. Depois que o circuito for construído e verificado como correto, conecte o PC ao ESP32-WROVER.
CUIDADO: Evite possíveis curtos-circuitos (especialmente conectando 5V ou GND, 3,3V e GND)! AVISO: Um curto-circuito pode causar
alta corrente no seu circuito, criar calor excessivo nos componentes e causar danos permanentes ao seu hardware!
Diagrama esquemático
Conexão de hardware. Se precisar de algum suporte, entre em contato conosco através de: [email protected]
Código
01.1_Piscar
Abra “Thonny”, clique em “Este computador”ÿ“D:”ÿ“Micropython_Codes”.
Expanda a pasta “01.1_Blink” e clique duas vezes em “Blink.py” para abri-la. Conforme mostrado na ilustração abaixo.
Certifique-se de que o ESP32 esteja conectado corretamente ao computador com ESP32. Clique em “Parar/Reiniciar backend”
ou pressione o botão reset e espere para ver qual interface aparecerá.
1, Parar/Reiniciar back-end
Isso indica
que o
conexão é
bem-sucedido.
Clique em “Executar script atual” mostrado na caixa acima, o código começa a ser executado e o LED no
circuito começa a piscar.
led.valor(1) led.valor(0)
Observação:
Este é o código em execução online. Se você desconectar o cabo USB e religar o ESP32 ou pressionar a tecla reset, o LED parará de
piscar e as seguintes mensagens serão exibidas no Thonny.
Conforme mostrado na ilustração a seguir, clique com o botão direito no arquivo Blink.py e selecione “Upload to /” para fazer upload do código para
ESP32.
Certifique-se de ter
carregado Blink.py e boot.py
aqui,
Pressione a tecla reset do ESP32 e você verá que o LED está LIGADO por um segundo e depois DESLIGADO por um segundo, o que
se repete em um loop infinito.
Observação:
Os códigos aqui são executados offline. Se você quiser parar de correr offline e entrar no Shell, basta clicar em “Parar” no Thonny.
Parar/reiniciar back-end
Se você tiver alguma dúvida, entre em contato conosco através de: [email protected]
Ao controle:
ESP32,
RPI, Arduino,
MCU e etc
Entrada: Saída:
interruptores, LED, campainha,
A seguir, construiremos um sistema de controle simples para controlar um LED por meio de um botão de pressão.
No projeto, controlaremos o estado do LED através de um Push Button Switch. Quando o botão for pressionado, nosso LED acenderá
e, quando for liberado, o LED apagará. Isto descreve uma mudança momentânea.
Lista de Componentes
Tábua de ensaio x1
Conhecimento de componentes
Botão de apertar
Este tipo de interruptor de botão possui 4 pinos (interruptor de 2 pólos). Dois pinos à esquerda estão conectados e os lados
esquerdo e direito são iguais conforme a ilustração:
Quando o botão no interruptor é pressionado, o circuito é concluído (seu projeto está ligado).
O circuito
Diagrama esquemático
Conexão de hardware. Se precisar de algum suporte, não hesite em nos contatar através de: [email protected]
Código
Este projeto foi desenvolvido para aprender a controlar um LED com um botão de pressão. Primeiro, precisamos ler o estado do switch e
então decidir se o LED está ligado ou não com base nele.
clique
Clique em “Executar script atual” mostrado na caixa da ilustração acima, pressione o botão, o LED acende; solte o interruptor, o
LED apaga.
Conforme mostrado na ilustração a seguir, clique com o botão direito no arquivo 02.1_ButtonAndLed e selecione “Upload to /” para fazer upload
código para ESP32.
Certifique-se de ter
aqui.
Pressione a tecla de reinicialização do ESP32 e, em seguida, pressione o botão, o LED acende; Aperte o botão novamente, o LED apaga.
2
3 led = Pino (2, Pino.OUT)
4
5 #criar objeto de botão do pin13, definir Pin13 como entrada
7
8 tentar:
9 enquanto Verdadeiro:
12 outro:
14 exceto:
15 passar
Neste projeto utilizamos o módulo Pin da máquina, portanto antes de inicializar o Pin precisamos importar este
módulo primeiro.
Na conexão do circuito, LED e botão são conectados com GPIO2 e GPIO13 respectivamente, então defina led e botão
como 2 e 13 respectivamente. led =
3 Pino (2, Pino.OUT)
4
5 #criar objeto de botão do pin13, definir Pin13 como entrada
Leia o estado do pino do botão com a função value(). Pressione o botão, a função retorna ao nível baixo e o resultado de “se” é
verdadeiro, e então o LED acenderá; Caso contrário, o LED será desligado.
9 enquanto Verdadeiro:
12 outro:
A instrução If é usada para executar a próxima instrução quando uma determinada condição for comprovada como verdadeira
(ou diferente de 0). Muitas vezes é usado junto com a instrução “else”, que julga outras instruções, exceto a instrução if. Se
você precisar avaliar se o resultado de uma condição é 0, você pode usar a instrução if not.
10 se não for button.value():
11 …
12 outro:
13 …
Também usaremos um interruptor de botão, LED e ESP32 para fazer um abajur MINI, mas funcionará de maneira diferente: pressione o
botão, o LED acenderá e, pressionando o botão novamente, o LED apagará. A ação do interruptor ON não é mais momentânea (como
uma campainha), mas permanece LIGADA sem a necessidade de pressionar continuamente o botão.
Quando um botão momentâneo é pressionado, ele não muda de um estado para outro imediatamente. Devido a pequenas
vibrações mecânicas, haverá um curto período de golpes contínuos antes de atingir completamente outro estado, muito rápido
para ser detectado pelos humanos, mas não para os microcontroladores de computador. O mesmo acontece quando o botão de
pressão é liberado. Este fenômeno indesejado é conhecido como “salto”.
Estado ideal
Estado virtual
Portanto, se pudermos detectar diretamente o estado do botão de pressão, haverá múltiplas ações de pressionar e soltar em um
ciclo de pressão. Esse golpe enganará a operação em alta velocidade do microcontrolador, causando muitas decisões falsas.
Portanto, precisamos eliminar o impacto dos golpes. Nossa solução: julgar o estado do botão diversas vezes. Somente quando o
estado do botão é estável (consistente) durante um período de tempo, isso pode indicar que o botão está realmente no estado
LIGADO (sendo pressionado).
Este projeto precisa dos mesmos componentes e circuitos que usamos na seção anterior.
Código
02.2_Candeeiro de mesa
caminho de “D:/Micropython_Codes”.
Abra “Thonny”, clique em “Este computador” ÿ “D:” ÿ “Micropython_Codes” ÿ “02.2_TableLamp” e clique duas vezes em “TableLamp.py”.
Clique
Clique em “Executar script atual” mostrado na caixa da ilustração acima, pressione o botão, o LED acende; pressione-o novamente, o LED
apaga.
Se você tiver alguma dúvida, entre em contato conosco através de: [email protected]
Conforme mostrado na ilustração a seguir, clique com o botão direito no arquivo 02.2_TableLamp e selecione “Upload to /” para fazer upload do código
para ESP32.
Certifique-se de ter
aqui
Pressione a tecla de reinicialização do ESP32 e, em seguida, pressione o botão, o LED acende; Aperte o botão novamente, o LED apaga.
3
4 led = Pino (2, Pin.OUT) botão
6
7 def reverseGPIO():
8 se led.value():
9 led.valor(0)
10 outro:
11 led.valor(1)
12
13 enquanto Verdadeiro:
15 hora.sleep_ms(20)
17 GPIO reverso()
19 time.sleep_ms(20)
20
Quando o botão for pressionado, atrase 20 ms para evitar o efeito de salto e, em seguida, verifique se o botão foi pressionado novamente.
Nesse caso, a instrução condicional será executada, caso contrário, não será executada.
13 enquanto Verdadeiro:
14 se não, button.value():
15 time.sleep_ms(20)
17 GPIO reverso()
19 hora.sleep_ms(20)
Personalize uma função e nomeie-a como reverseGPIO(), que inverte o nível de saída do LED.
7 def reverseGPIO():
8 se led.value():
9 led.valor(0)
10 outro:
11 led.valor(1)
Aprendemos como controlar o piscar de um LED, a seguir aprenderemos como controlar vários LEDs.
Neste projeto, usamos vários LEDs para fazer uma luz fluida.
Lista de Componentes
Tábua de ensaio x1
Conhecimento de componentes
Vamos aprender sobre os recursos básicos desses componentes para usá-los e entendê-los melhor.
Barra de LED
Um LED gráfico de barras possui 10 LEDs integrados em um componente compacto. As duas fileiras de pinos na parte inferior são
emparelhadas para identificar cada LED como o único LED usado anteriormente.
O circuito
Diagrama esquemático
Conexão de hardware. Se precisar de algum suporte, não hesite em nos contatar através de: [email protected]
Código
Este projeto foi desenvolvido para fazer uma lâmpada de água corrente. Quais são estas ações: Primeiro ligue o LED nº 1 e depois desligue-o. Em
seguida, ligue o LED nº 2 e, em seguida, desligue-o... e repita o mesmo para todos os 10 LEDs até que o último LED se apague. Este processo é
03.1_Luz Fluente
caminho de “D:/Micropython_Codes”.
Abra “Thonny”, clique em “Este computador” ÿ “D:” ÿ “Micropython_Codes” ÿ “03.1_FlowingLight” e clique duas vezes em “FlowingLight.py”.
clique
Clique em “Executar script atual” mostrado na caixa acima, o LED Bar Graph acenderá da esquerda para a direita e depois da direita para a esquerda.
Se você tiver alguma dúvida, entre em contato conosco através de: [email protected]
9 led=Pino(pinos[i],Pin.OUT)
10 led.valor(1)
11 hora.sleep_ms(100)
12 led.valor(0)
13 para i no intervalo (0,
14 comprimento): led=Pin(pins[(length-i-1)],Pin.OUT)
15 led.valor(1)
16 hora.sleep_ms(100)
17 led.valor(0)
18
19 enquanto Verdadeiro:
20 exibido()
Use uma matriz para definir 10 portas GPIO conectadas ao LED Bar Graph para facilitar a operação.
4 pinos=[15,2,0,4,5,18,19,21,22,23]
Use a função len() para obter a quantidade de elementos na lista e use um loop for para configurar os pinos como saída
modo.
7 comprimento = len
9 led=Pino(pinos[i],Pin.OUT)
Use dois loops for para ligar os LEDs separadamente da esquerda para a direita e depois da direita para a esquerda.
8 para i no intervalo (0, comprimento):
9 led=Pin(pins[i],Pin.OUT)
10 led.value(1)
11 time.sleep_ms(100)
12 led.value(0)
13 for i in range(0,length):
14 led=Pin(pins[(length- i-1)],Pin.OUT)
15 led.value(1)
16 time.sleep_ms(100)
17 led.value(0)
Referência
valor final, o loop for termina com ele num: Num é adicionado
No estudo anterior, sabíamos que um botão tem dois estados: pressionado e liberado, e o LED tem estado ligado/desligado, então
como entrar em um estado intermediário? Como gerar um estado intermediário para deixar o LED "semi brilhante"?
É isso que vamos aprender.
Primeiro, vamos aprender como controlar o brilho de um LED.
A luz de respiração, ou seja, o LED é desligado e ligado gradualmente, e gradualmente de ligado para desligado, assim como "respirar".
Então, como controlar o brilho de um LED? Usaremos PWM para atingir essa meta.
Lista de Componentes
Tábua de ensaio x1
Conhecimento relacionado
Digital analógico
Um sinal analógico é um sinal contínuo em tempo e valor. Pelo contrário, um sinal digital ou sinal de tempo discreto é uma
série temporal que consiste em uma sequência de quantidades. A maioria dos sinais na vida são sinais analógicos. Um
exemplo familiar de sinal analógico seria como a temperatura ao longo do dia muda continuamente e não pode mudar
repentinamente e instantaneamente de 0 ÿ para 10 ÿ. No entanto, os sinais digitais podem mudar instantaneamente de valor.
Essa mudança é expressa em números como 1 e 0 (a base do código binário).
Suas diferenças podem ser vistas mais facilmente quando comparadas quando representadas graficamente abaixo.
Na aplicação prática, costumamos usar binário como sinal digital, que é uma série de 0 e 1. Como um sinal binário possui apenas dois
valores (0 ou 1), ele possui grande estabilidade e confiabilidade. Por último, tanto os sinais analógicos quanto os digitais podem ser
convertidos em outro.
PWM
PWM, modulação por largura de pulso, é um método muito eficaz para usar sinais digitais para controlar circuitos analógicos.
Processadores comuns não podem emitir sinais analógicos diretamente. A tecnologia PWM torna muito conveniente
conseguir esta conversão (tradução de sinais digitais para analógicos)
A tecnologia PWM utiliza pinos digitais para enviar determinadas frequências de ondas quadradas, ou seja, a saída de níveis
altos e baixos, que duram alternadamente por um tempo. O tempo total para cada conjunto de níveis altos e baixos é
geralmente fixo, o que é chamado de período (Nota: o recíproco do período é a frequência). O tempo das saídas de alto
nível é geralmente chamado de “largura de pulso”, e o ciclo de trabalho é a porcentagem da razão entre a duração do pulso,
ou largura de pulso (PW) e o período total (T) da forma de onda.
Quanto mais tempo durar a saída de níveis altos, maior será o ciclo de trabalho e maior será a tensão correspondente no
sinal analógico. As figuras a seguir mostram como as tensões do sinal analógico variam entre 0V-5V (o nível alto é 5V)
correspondendo à largura de pulso de 0%-100%:
Quanto maior for o ciclo de trabalho do PWM, maior será a potência de saída. Agora que entendemos essa relação, podemos usar o
PWM para controlar o brilho de um LED ou a velocidade do motor DC e assim por diante.
É evidente pelo exposto que o PWM não é analógico real e o valor efetivo da tensão é equivalente ao analógico correspondente. então,
podemos controlar a potência de saída do LED e outros módulos de saída para
alcançar efeitos diferentes.
ESP32 e PWM
O controlador ESP32 PWM possui 8 canais independentes, cada um dos quais pode controlar de forma independente a frequência, o
ciclo de trabalho e até a precisão. Ao contrário dos pinos PWM tradicionais, os pinos de saída PWM do ESP32 são configuráveis
e eles podem ser configurados para PWM.
O circuito
Conexão de hardware. Se precisar de algum suporte, entre em contato conosco através de: [email protected]
Código
Este projeto foi projetado para fazer saída PWM GPIO2 com largura de pulso aumentando de 0% a 100% e depois
reduzindo de 100% a 0% gradualmente.
Mova a pasta do programa “Freenove_Ultimate_Starter_Kit_for_ESP32/Python/Python_Codes” para o disco
(D) antecipadamente com o caminho de “D:/Micropython_Codes”.
Abra “Thonny”, clique em “Este computador” ÿ “D:” ÿ “Micropython_Codes” ÿ “04.1_BreatheLight” e clique duas vezes
em “BreatheLight.py”.
04.1_RespireLuz
Clique em “Executar script atual” e você verá que o LED passa de LIGADO para DESLIGADO e depois volta de DESLIGADO para LIGADO
2 hora de importação
3
4 pwm =PWM(Pino(2,Pino.OUT),10000)
5 tentar:
6 enquanto Verdadeiro:
8 pwm.duty(i)
9 time.sleep_ms(1)
10
11 para i no intervalo (0,1023):
12 pwm.duty(1023-
13 i)time.sleep_ms(1)
14 exceto:
15 pwm.deinit()
A forma como a saída dos pinos PWM do ESP32 é diferente dos controladores tradicionais. Ele pode alterar a frequência e o ciclo de
trabalho configurando os parâmetros do PWM no estágio de inicialização. Defina a frequência de saída do GPIO2 como 10.000 Hz e
atribua-a ao PWM. pwm
4 =PWM(Pino(2,Pino.OUT),10000)
A faixa do ciclo de trabalho é 0-1023, então usamos o primeiro loop for para controlar o PWM para alterar o valor do ciclo de trabalho, fazendo com que a saída
do PWM seja 0% -100%; Use o segundo loop for para fazer com que a saída PWM seja 100% -0%. para i no intervalo (0,1023):
7 pwm.duty(i) time.sleep_ms(1)
8
9
10
11 para i no intervalo (0,1023):
12 pwm.duty(1023-
13 i)time.sleep_ms(1)
Cada vez que o PWM é usado, o temporizador do hardware será LIGADO para cooperar. Portanto, após cada uso do PWM, deinit()
precisa ser chamado para desligar o temporizador. Caso contrário, o PWM poderá não funcionar na próxima vez.
15pwm.deinit ()
Referência
Classe PWM (pino, frequência)
Antes de cada uso do módulo PWM, adicione a instrução “from machine import PWM” no topo do arquivo python.
Depois de aprender sobre o PWM, podemos usá-lo para controlar o LED Bar Graph e realizar um Flowing Light mais frio.
Lista de Componentes
Tábua de ensaio x1
O circuito
Diagrama esquemático
Conexão de hardware. Se precisar de algum suporte, não hesite em nos contatar através de: [email protected]
Código
Clique em “Executar script atual” e o LED Bar Graph acenderá e apagará gradualmente da esquerda para a direita, depois acenderá e
apagará da direita para a esquerda.
3 hora de importação
5 meupwm = meuPWM(15,2,0,4,5,18,19,21)
6 chns=[0,1,2,3,4,5,6,7]; deveres =
7 [0,0,0,0,0,0,0,0,1023,512,256,128,64,32,16,8,0,0,0,0,0,0,0,0];
8 tempos de atraso = 50
10 tentar:
11 enquanto Verdadeiro:
14 mypwm.ledcWrite(chns[j],dutys[i+j])
15 time.sleep_ms(delayTimes)
16
19 mypwm.ledcWrite(chns[7-j],deveres[i+j])
20 time.sleep_ms(delayTimes)
21 exceto:
22 meupwm.deinit()
Importe o objeto myPWM de pwm.py e defina os pinos correspondentes para o canal PWM.
2 de pwm importar myPWM
… …
5 meupwm = meuPWM(15,2,0,4,5,18,19,21)
6 chns=[0,1,2,3,4,5,6,7]; deveres =
7 [0,0,0,0,0,0,0,0,1023,512,256,128,64,32,16,8,0,0,0,0,0,0,0,0];
Chame ledcWrite() para definir taxas de ciclo de trabalho[i+j] para o canal chns[j] do PWM.
14 mypwm.ledcWrite(chns[j],dutys[i+j])
No código, um aninhamento de dois loops for é usado para obter esse efeito.
12 para i no intervalo (0,16):
13 para j no intervalo (0,8):
14 mypwm.ledcWrite(chns[j],dutys[i+j])
15 time.sleep_ms(delayTimes)
16
17 para i no intervalo (0,16):
18 para j no intervalo (0,8):
19 mypwm.ledcWrite(chns[7-j],deveres[i+j])
20 time.sleep_ms(delayTimes)
Na função principal, um loop for aninhado é usado para controlar a largura de pulso do PWM. Cada vez que i no primeiro
loop for aumenta em 1, o gráfico de barras de LED moverá uma grade e mudará gradualmente de acordo com o valor
nas taxas da matriz. Conforme mostrado na tabela a seguir, o valor na segunda linha é o valor das taxas do conjunto, e
as 8 grades verdes em cada linha abaixo representam os 8 LEDs no gráfico de barras de LED. Cada vez que i aumenta
em 1, o valor do LED Bar Graph se moverá uma grade para a direita e, quando chegar ao final, se moverá do final para
o ponto inicial, alcançando o efeito desejado.
0 1234567891 1 1 1 1 1 1 1 1 1 2 2 2 2 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
d 0000000 1 5 2 1 6 3 1 800000000
0 1 5 2 4 2 6
eu 2 2 6 8
3
0
1
…
14
15
16
Como importar um módulo python personalizado
Cada arquivo Python, desde que armazenado no sistema de arquivos do ESP32, é um módulo. Para importar um módulo
personalizado, o arquivo do módulo precisa estar localizado no caminho da variável de ambiente MicroPython ou no mesmo caminho
do programa em execução no momento.
Primeiro, personalize um módulo python “custom.py”. Crie um novo arquivo py e nomeie-o “custom.py”. Escreva o código para
e salve-o no ESP32.
Rand()
Capítulo 5 RGBLED
Neste capítulo, aprenderemos como controlar um RGBLED. Pode emitir diferentes cores de luz. A seguir, usaremos RGBLED para fazer uma luz
multicolorida.
Neste projeto faremos um LED multicolorido. E podemos controlar o RGBLED para alternar cores diferentes automaticamente.
Lista de Componentes
Tábua de ensaio x1
Conhecimento relacionado
O LED RGB integrou 3 LEDs que podem emitir respectivamente luz vermelha, verde e azul. E tem 4 pinos. O pino longo (1)
é a porta comum, ou seja, porta positiva ou negativa de 3 LEDs. O LED RGB com porta positiva comum e seu símbolo é
mostrado abaixo. Podemos fazer com que o LED RGB emita várias cores de luz controlando esses 3 LEDs para emitir luz
com brilho diferente,
As luzes vermelha, verde e azul são conhecidas como três cores primárias. Quando você combina essas três luzes de cores
primárias com brilhos diferentes, pode produzir quase todos os tipos de luzes visíveis. Telas de computador, pixel único da
tela do telefone celular, néon e etc. estão funcionando sob este princípio.
RGB
Se usarmos três PWM de 10 bits para controlar o RGBLED, em teoria, podemos criar 2 10*210*210 = 1.073.741.824(1
bilhão) cores através de diferentes combinações.
O circuito
Diagrama esquemático
Conexão de hardware. Se precisar de algum suporte, não hesite em nos contatar através de: [email protected]
Código
Precisamos criar três canais PWM e usar o ciclo de trabalho aleatório para criar cores RGBLED aleatórias.
Abra “Thonny”, clique em “Este computador” ÿ “D:” ÿ “Micropython_Codes” ÿ “05.1_RandomColorLight” e clique duas vezes em
“RandomColorLight.py”.
05.1_RandomColorLight
3 hora de importação
4
5 pinos=[15,2,0]
6
7 pwm0=PWM(Pino(pinos[0]),10000)
8 pwm1=PWM(Pino(pinos[1]),10000)
9 pwm2=PWM(Pino(pinos[2]),10000)
10
11 def setColor(r,g,b):
12 pwm0.duty(1023-r)
13 pwm1.duty(1023-g)
14 pwm2.duty(1023-b)
15
16 tentar:
17 enquanto Verdadeiro:
18 vermelho = aleatório(0,1023) =
19 verde aleatório(0,1023)
21 setColor(vermelho,verde,azul)
22 time.sleep_ms(200)
23 exceto:
24 pwm0.deinit()
25 pwm1.deinit()
26 pwm2.deinit()
14 hora de importação
Configure o modo de saída de GPIO15, GPIO2 e GPIO0 como saída PWM e frequência PWM como 10000Hz
5 pinos=[15,2,0]
6
7 pwm0=PWM(Pino(pinos[0]),10000)
8 pwm1=PWM(Pino(pinos[1]),10000)
9 pwm2=PWM(Pino(pinos[2]),10000)
11 def setColor(r,g,b):
12 pwm0.duty(1023-r)
13 pwm1.duty(1023-g)
14 pwm2.duty(1023-b)