0% acharam este documento útil (0 voto)
28 visualizações100 páginas

Python Tutorial (001 100)

Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
28 visualizações100 páginas

Python Tutorial (001 100)

Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Machine Translated by Google

Bem-vindo

Obrigado por escolher os produtos Freenove!

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.

! Descompacte o arquivo ZIP em vez de abri-lo diretamente no arquivo ZIP.


! Não mova, exclua ou renomeie arquivos na pasta que acabou de descompactar.

Obtenha suporte

Encontrou problemas? Não se preocupe! Consulte “TroubleShooting.pdf” ou entre em contato conosco.

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.

[email protected]

Atenção

Preste atenção à segurança ao usar e armazenar este produto:

ÿ 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.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

Sobre

Freenove fornece produtos e serviços eletrônicos de código aberto.

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:

ÿ Kits para aprender programação e eletrônica


ÿ Kits compatíveis com Arduino®, Raspberry Pi®, micro:bit®, ESP32®, etc.
ÿ Kits para robôs, carros inteligentes, drones, etc.

ÿ Componentes, módulos e ferramentas


ÿ Design e personalização

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

Outras marcas registradas e seus proprietários que aparecem neste documento:

Arduino® é uma marca registrada da Arduino LLC (https://www.arduino.cc/).


Raspberry Pi® é uma marca registrada da Raspberry Pi Foundation (https://www.raspberrypi.org/).
micro:bit® é uma marca registrada da Micro:bit Educational Foundation (https://www.microbit.org/).
ESPRESSIF® e ESP32® são marcas registradas da ESPRESSIF Systems (Shanghai) Co., Ltd (https://
www.espressif.com/).

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Conteúdo 1

Conteúdo

Bem-vindo................................................. .................................................. .... eu

Conteúdo .................................................. .................................................. ...1

Preparar................................................. .................................................. ......5


ESP32-WROVER................................................. .................................................. .................................................. ....................6
Placa de extensão do ESP32-WROVER......................................... .................................................. ............................ 8

Capítulo 0 Pronto (Importante) .......................................... ....................9


0.1 Instalando o Thonny (Importante) .......................................... .................................................. ........................................... 9 0.2

Configuração Básica do Thonny.. .................................................. .................................................. ..............................14 0.3 Instalando

o CH340 (Importante)............ .................................................. .................................................. .......................16 0.4 Gravando Firmware

Micropython (Importante)................... .................................................. ...................................27 0,5 Códigos de teste

(Importante)..... .................................................. .................................................. ....................................32 0.6 Operação Comum

Thonny......... .................................................. .................................................. ...........................39 0,7


Nota.................. .................................................. .................................................. .................................................. ............44

Capítulo 1 LED (Importante).......................................... ...................... 46


Projeto 1.1 Piscar ................................................ .................................................. .................................................. ....................46
Projeto 1.2 Piscar ............................ .................................................. .................................................. ...........................................55

Capítulo 2 Botão e LED............................................. ........................... 63


Botão e LED do Projeto 2.1......................................... .................................................. .................................................. .....63
Candeeiro de mesa MINI do Projeto 2.2......................................... .................................................. .................................................. ......70

Capítulo 3 Barra de LEDs ............................................. ................................... 75


Projeto 3.1 Fluxo de Luz......................................... .................................................. .................................................. ....75

Capítulo 4 Analógico e PWM............................................. ..................... 81


Projeto 4.1 LED de respiração......................................... .................................................. .................................................. ...81
Projeto 4.2 Fluxo de luz de meteoros ........................................... .................................................. .............................................. 88

Capítulo 5 RGBLED............................................... ................................... 94


Projeto 5.1 Luz de Cor Aleatória............................................. .................................................. ...........................................94 Projeto
5.2 Luz de cor gradiente.. .................................................. .................................................. ...................................100

Capítulo 6 NeoPixel ................................................ ..............................102


Projeto 6.1 NeoPixel ................................................ .................................................. .................................................. ..........102
Projeto 6.2 Luz Arco-Íris................................... .................................................. .................................................. ............108

Alguma preocupação? ÿ [email protected]


Machine Translated by Google
2 Conteúdo www.freenove.com ÿ

Capítulo 7 Campainha ............................................... ...................................111


Projeto 7.1 Campainha................................................... .................................................. .................................................. ...........111
Alerta do Projeto 7.2................................... .................................................. .................................................. ...........................117

Capítulo 8 Comunicação Serial............................................. ......119


Projeto 8.1 Impressão Serial...................................... .................................................. .................................................. ........119
Projeto 8.2 Leitura e gravação serial................................... .................................................. ................................................124

Capítulo 9 Conversor AD/DA......................................... ................125


Projeto 9.1 Ler a Tensão do Potenciômetro......................................... .................................................. .............125

Capítulo 10 Sensor de toque................................................. ....................133


Projeto 10.1 Ler Sensor de Toque...................................... .................................................. ..............................133 Projeto 10.2
TouchLamp....... .................................................. .................................................. ...........................................138

Capítulo 11 Potenciômetro e LED............................................. ......143


Projeto 11.1 Luz Suave............................................. .................................................. .................................................. .......143
Projeto 11.2 Luz Colorida Suave ..................................... .................................................. ....................................................146
Projeto 11.3 Luz suave do arco-íris...................................... .................................................. ........................................150

Capítulo 12 Fotorresistor e LED............................................. ........154


Projeto 12.1 Lâmpada Noturna......................................... .................................................. .................................................. ...154

Capítulo 13 Termistor................................................. ........................158


Projeto 13.1 Termômetro............................................. .................................................. ................................................158

Capítulo 14 Joystick ................................................ ..............................164


Projeto 14.1 Joystick ............................................. .................................................. .................................................. ..........164

Capítulo 15 74HC595 e gráfico de barras de LED...................................169


Projeto 15.1 Luz de água corrente...................................... .................................................. ....................................169

Capítulo 16 74HC595 e display de 7 segmentos...................175


Projeto 16.1 Display de 7 segmentos. .................................................. .................................................. ....................................175
Projeto 16.2 Display de 4 dígitos e 7 segmentos....... .................................................. .................................................. ............181

Capítulo 16 74HC595 e Matriz de LED ........................................... ...186


Projeto 16.3 Matriz de LEDs........................................ .................................................. .................................................. .....186

Capítulo 17 Relé e Motor............................................. ...................195


Projeto 17.1 Relé e Motor ............................................. .................................................. ................................................195 Projeto
17.2 Motor de Controle com Potenciômetro...................................... .................................................. ..........201

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Conteúdo 3

Capítulo 18 Servo ............................................. ...................................209


Projeto 18.1 Varredura Servo............................................. .................................................. .................................................. .209
Projeto 18.2 Botão Servo .......................................... .................................................. .................................................. .....215

Capítulo 19 Motor de passo ............................................. ..................219


Projeto 19.1 Motor de passo............................................. .................................................. ............................................. 219

Capítulo 20 LCD1602 ........................................ ...........................227


Projeto 20.1 LCD1602 ........................................ .................................................. .................................................. .......227

Capítulo 21 Alcance Ultrassônico ............................................. .........234


Projeto 21.1 Alcance Ultrassônico............................................. .................................................. ..............................234 Projeto 21.2
Alcance Ultrassônico...... .................................................. .................................................. ............................241

Capítulo 22 Teclado matricial ............................................. ..................244


Projeto 22.1 Teclado Matriz............................................. .................................................. ................................................244 Projeto
22.2 Porta do teclado................................................ .................................................. ...................................................250

Capítulo 23 Controle Remoto Infravermelho ............................................. ..............255


Projeto 23.1 Controle Remoto Infravermelho............................................. .................................................. ............................255
Projeto 23.2 LED de controle através do controle remoto infravermelho............. .................................................. ...................................261

Capítulo 24 Higrotermógrafo DHT11........................................266


Projeto 24.1 Higrotermógrafo......................................... .................................................. ....................................266 Projeto 24.2
Higrotermógrafo......... .................................................. .................................................. .........................272

Capítulo 25 Sensor de Movimento Infravermelho...................................... ..276


Projeto 25.1 Detector de Movimento Infravermelho com Indicador LED................................... ...........................................276

Capítulo 26 Sensor de atitude MPU6050....................................281


Projeto 26.1 Ler um Módulo Sensor MPU6050...................................... .................................................. ..............281

Capítulo 27 Bluetooth............................................... ...........................287


Projeto 27.1 Passagem de dados de baixa energia Bluetooth...................................... .................................................. 287 Projeto
27.2 LED de controle de Bluetooth......................................... .................................................. ...................................297

Capítulo 28 Modos de funcionamento WiFi ............................................. ......303


Projeto 28.1 Modo Estação......................................... .................................................. .................................................. 303 Projeto
28.2 Modo AP............................................. .................................................. .................................................. .........307 Projeto 28.3
Modo AP+Estação.................................. .................................................. .................................................. ...311

Capítulo 29 TCP/IP............................................. ...................................315


Projeto 29.1 Como Cliente......................................... .................................................. .................................................. .........315

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google
4 Conteúdo www.freenove.com ÿ

Projeto 29.2 como servidor......................................... .................................................. .................................................. ........326

Capítulo 30 Servidor Web da Câmera............................................. ........331


Servidor Web da Câmera do Projeto 30.1......................................... .................................................. ....................................331

Capítulo 31 Placa de Circuito de Soldagem............................................. ..342


Projeto 31.1 Soldando uma Campainha............................................. .................................................. ........................................342
Projeto 31.2 Soldando uma luz de água corrente.. .................................................. .................................................. .......346

Qual é o próximo? .................................................. ........................................350

Fim do tutorial................................................. ...................................350

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿ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]

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

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.

Antena PCB integrada Antena IPEX

Neste tutorial, o ESP32-WROVER é projetado com base no pacote de antena PCB on-board.
ESP32-WROVER

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Preparar 7

As interfaces de hardware do ESP32-WROVER são distribuídas da seguinte forma:

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

Botão Redefinir, botão de seleção do modo de inicialização

porta USB

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

8 Prepare www.freenove.com ÿ

Placa de extensão do ESP32-WROVER

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:

Colocamos os recursos do ESP32-WROVER em cores diferentes para facilitar sua compreensão


o ESP32-WROVER.

Cor da caixa Introdução de recursos correspondentes

Pino GPIO

Indicador LED

Interface GPIO da placa de desenvolvimento

Energia fornecida pela placa de extensão

Fonte de energia externa

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

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 0 Pronto (Importante) 9

Capítulo 0 Pronto (Importante)

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.

0.1 Instalando Thonny (Importante)

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

Site oficial de Thonny: https://thonny.org


Repositórios de código-fonte aberto de Thonny: https://github.com/thonny/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:

Pacote binário para PC (Thonny + Python):


bash <(wget -O - https://thonny.org/installer-for-linux)

Com pip:
pip3 instalar o thonny
Linux

Pacotes de distribuição (pode não ser a versão mais recente):


Debian, Rasbian, Ubuntu, Mint e outros:
sudo apto instalar thonny

Fedor:

sudo dnf instalar thonny

Você também pode abrir “Freenove_Ultimate_Starter_Kit_for_ESP32/Python/Python_Software”, nós preparamos


isso com antecedência.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

10 Capítulo 0 Pronto (Importante) www.freenove.com ÿ

Instalando no Windows

O ícone do Thonny após o download é o seguinte. Clique duas vezes em “thonny-3.2.7.exe”.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 0 Pronto (Importante) 11

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”.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

12 Capítulo 0 Pronto (Importante) www.freenove.com ÿ

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.

Clique em “instalar” para instalar o software.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 0 Pronto (Importante) 13

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.

Depois de ver a interface abaixo, Thonny foi instalado com sucesso.

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.ÿ

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

14 Capítulo 0 Pronto (Importante) www.freenove.com ÿ

0.2 Configuração Básica do Thonny

Clique no ícone do Thonny na área de trabalho e você poderá ver a interface dele da seguinte maneira:

Selecione “Exibir”ÿ “Arquivos” e “Shell”.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 0 Pronto (Importante) 15

Barra de menu

Gerenciamento de arquivos

Editor de código

Concha

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

16 Capítulo 0 Pronto (Importante) www.freenove.com ÿ

0.3 Instalando o CH340 (Importante)

ESP32 usa CH340 para baixar códigos. Portanto, antes de usá-lo, precisamos instalar o driver CH340 em nossos computadores.

janelas

Verifique se o CH340 foi instalado

1. Conecte seu computador e ESP32 com um cabo USB.

2. Vá para a interface principal do seu computador, selecione “Este PC” e clique com o botão direito para selecionar “Gerenciar”.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 0 Pronto (Importante) 17

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

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

18 Capítulo 0 Pronto (Importante) www.freenove.com ÿ

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

Você também pode abrir “Freenove_Ultimate_Starter_Kit_for_ESP32/CH340”, preparamos o pacote de instalação.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 0 Pronto (Importante) 19

2. Abra a pasta “Freenove_Ultimate_Starter_Kit_for_ESP32/CH340/Windows/ch341ser”

3. Clique duas vezes em “CH341SER.EXE”.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

20 Capítulo 0 Pronto (Importante) www.freenove.com ÿ

4. Clique em “INSTALAR” e aguarde a conclusão da instalação.

5. Instale com sucesso. Feche todas as interfaces.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 0 Pronto (Importante) 21

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.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

22 Capítulo 0 Pronto (Importante) www.freenove.com ÿ

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

Caso não queira baixar o pacote de instalação, você pode abrir


“Freenove_Ultimate_Starter_Kit_for_ESP32/CH340”, nós preparamos o pacote de instalação.

Segundo, abra a pasta “Freenove_Ultimate_Starter_Kit_for_ESP32/CH340/MAC/”

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 0 Pronto (Importante) 23

Executá-lo.

Terceiro, clique em Continuar.

Quarto, clique em Instalar.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

24 Capítulo 0 Pronto (Importante) www.freenove.com ÿ

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 0 Pronto (Importante) 25

Então, esperando Finsh.

Finalmente, reinicie o seu PC.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

26 Capítulo 0 Pronto (Importante) www.freenove.com ÿ

Se você ainda não instalou o CH340 seguindo as etapas acima, você pode visualizar readme.pdf para instalá-lo.

Leia-me

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 0 Pronto (Importante) 27

0.4 Gravando firmware Micropython (importante)

Para executar programas Python no ESP32, precisamos primeiro gravar um firmware no ESP32.

Baixando Firmware Micropython

Site oficial do microPython: http://micropython.org/ Página da web


listando firmware do microPython para ESP32: https://micropython.org/download/esp32spiram/

O firmware usado neste tutorial é esp32spiram-20220117-v1.18.bin. Este arquivo

também é fornecido em nossa pasta de dados "Freenove_Ultimate_Starter_Kit_for_ESP32 /Python/


Python_Firmware".ÿ

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

28 Capítulo 0 Pronto (Importante) www.freenove.com ÿ

Gravando um firmware Micropython

Conecte seu computador e ESP32 com um cabo USB.

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.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 0 Pronto (Importante) 29

1. Abra o Thonny, clique em “executar” e selecione “Selecionar intérprete...””

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

30 Capítulo 0 Pronto (Importante) www.freenove.com ÿ

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

microPython preparado anteriormente “esp32spiram-20220117-v1.18.bin”.

Marque “Apagar flash antes de instalar” e clique em “instalar” para aguardar o aviso de conclusão da instalação.

Clique
Clique

Clique

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 0 Pronto (Importante) 31

4. Aguarde a conclusão da instalação.

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

/ÿDiretório raiz entre

espaço do ESP32, usado


para salvar arquivos.\

6. Até agora, todos os preparativos foram feitos.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

32 Capítulo 0 Pronto (Importante) www.freenove.com ÿ

0.5 Códigos de teste (importante)

Testando Comando Shell

Digite “print('hello world')” em “Shell” e pressione Enter.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 0 Pronto (Importante) 33

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…

2. Na nova janela pop-up, clique em “Este computador”.

Clique

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

34 Capítulo 0 Pronto (Importante) www.freenove.com ÿ

Na nova caixa de diálogo, selecione “HelloWorld.py” na pasta

“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

o código automaticamente após redefini-lo, consulte o seguinte Executando offline.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 0 Pronto (Importante) 35

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.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

36 Capítulo 0 Pronto (Importante) www.freenove.com ÿ

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 /”.

Nenhum código foi carregado.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 0 Pronto (Importante) 37

Da mesma forma, carregue “HelloWorld.py” para “dispositivo MicroPython”.

boot.py foi carregado aqui.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

38 Capítulo 0 Pronto (Importante) www.freenove.com ÿ

3. Pressione a tecla reset e na caixa da ilustração abaixo você verá que o código é executado.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 0 Pronto (Importante) 39

0.6 Operação Comum Thonny

Fazendo upload do código para ESP32

Cada vez que o ESP32 for reiniciado, se houver um “boot.py” no diretório raiz, ele executará este código primeiro.

inicialização.py Códigos em ESP32

diretório raiz será


executado

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

diretório raiz do ESP32.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

40 Capítulo 0 Pronto (Importante) www.freenove.com ÿ

Baixando código para o computador

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.

Excluindo arquivos do diretório raiz do ESP32

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.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 0 Pronto (Importante) 41

Excluindo arquivos do diretório do seu computador

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”.

Criando e salvando o código

Clique em “Arquivo”ÿ“Novo” para criar e escrever códigos.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

42 Capítulo 0 Pronto (Importante) www.freenove.com ÿ

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

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 0 Pronto (Importante) 43

Selecione “Dispositivo MicroPython”, digite “main.py” na nova janela pop-up e clique em “OK”.

Clique

Você pode ver que os códigos foram carregados no ESP32-WROVER.

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.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

44 Capítulo 0 Pronto (Importante) www.freenove.com ÿ

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.

GPIO16-17 foi usado para conectar a PSRAM integrada no módulo.


Devido ao pull-up externo, o pino MTDI não é sugerido para ser usado como sensor de toque. Para obter detalhes, consulte o capítulo
Interface Periférica e Sensor em "ESP32_Data_Sheet".
Para informações mais relevantes, clique em: https://
www.espressif.com/sites/default/files/documentation/esp32-wrover_datasheet_en.pdf.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 0 Pronto (Importante) 45

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

para visualizar informações específicas sobre GPIO.

Ou verifique: https://www.espressif.com/sites/default/files/documentation/esp32-wrover_datasheet_en.pdf.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

46 Capítulo 1 LED (Importante) www.freenove.com ÿ

Capítulo 1 LED (Importante)


Este capítulo é o ponto de partida na jornada para construir e explorar projetos eletrônicos ESP32. Começaremos com um projeto simples
“Blink”.

Projeto 1.1 Piscar

Neste projeto usaremos o ESP32 para controlar o piscar de um LED comum.


Se você ainda não instalou o Thonny, clique aqui.
Se você ainda não baixou o firmware Micropython, clique aqui.
Se você ainda não carregou o firmware Micropython, clique aqui.

Lista de Componentes

ESP32-WROVER x1 cabo USB

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.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 1 LED (Importante) 47

Código

Os códigos usados neste tutorial são salvos em “Freenove_Ultimate_Starter_Kit_for_ESP32/Python/


Códigos_Python”. Você pode mover os códigos para qualquer local. Por exemplo, salvamos os códigos no Disco (D) com o
caminho “D:/Micropython_Codes”.

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á.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

48 Capítulo 1 LED (Importante) www.freenove.com ÿ

1, Parar/Reiniciar back-end

2ÿExecute o script atual

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.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 1 LED (Importante) 49

Fazendo upload do código para ESP32

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.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

50 Capítulo 1 LED (Importante) www.freenove.com ÿ

Carregue boot.py da mesma maneira.

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]

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 1 LED (Importante) 51

A seguir está o código do programa:


1 de hora em que importa sleep_ms

2 do Pin de importação da máquina

3
4 led=Pin(2,Pin.OUT) #cria objeto LED do pino2, define Pin2 para saída

5 tentar:

6 enquanto Verdadeiro:

7 led.value(1) #Define o led para ligar

8 dormir_ms(1000)

9 led.value(0) #Define o LED para desligar

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

2 do Pin de importação da máquina

4 led=Pin(2,Pin.OUT) #cria objeto LED do pino2, define Pin2 para saída

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

2 do Pin de importação da máquina

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)

7 #Define o led para ligar

Defina o valor do LED como 0 e o GPIO2 produzirá nível baixo. led.value(0)

9 #Define o led para ligar

Execute códigos em um loop while.


6 enquanto Verdadeiro:

… …

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

52 Capítulo 1 LED (Importante) www.freenove.com ÿ

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á

declarações no bloco “exceto”.


“Pass” é uma declaração vazia. Quando é executado, nada acontece. É útil como espaço reservado para melhorar a aparência da
estrutura de um programa.
5 tentar:

… ...

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:

7 led.value(1) #Define o led para ligar

8 dormir_ms(1000)
9 led.value(0) #Define o LED para desligar

10 dormir_ms(1000)

Como importar arquivos python


Seja para importar o módulo python integrado ou para importar aquele escrito pelos usuários, o comando “importar” é
necessário.

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

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 1 LED (Importante) 53

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

frequência atual da CPU.

valor_freq: 80000000(80MHz)ÿ160000000(160MHz)ÿ240000000(240MHz)

machine.reset(): Uma função de redefinição. Quando for chamado, o programa será reiniciado.

machine.unique_id(): Obtém o endereço MAC do dispositivo. machine.idle():

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

qualquer momento durante períodos curtos ou longos.

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()

precisam ser usadas juntas; Caso contrário, a máquina irá falhar e


reiniciar.

machine.enable_irq(state): Para reativar solicitações de interrupção. O estado do parâmetro deve ser o valor retornado da chamada

mais recente para a função disable_irq()

machine.time_pulse_us(pino, pulse_level, timeout_us=1000000):

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.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

54 Capítulo 1 LED (Importante) www.freenove.com ÿ

Pino de classe (id[, modo, pull, valor])

Antes de cada uso do módulo Pin , adicione a declaração “from machine import Pin” ao topo do arquivo python.

id: número PIN arbitrário

modo: Modo de pinos

Pin.IN: Modo de entrada

Pin.OUT: Modo de saída

Pin.OPEN_DRAIN: Modo de drenagem aberta

Pull: se deve ativar o modo pull up e down interno

Nenhum: Sem resistores pull up ou pull down

Pin.PULL_UP: Modo Pull-up, saída de alto nível por padrão

Pin.PULL_DOWN: Modo pull-down, saída de baixo nível por padrão

Valor: Estado do nível do pino, 0/1

Pin.init(mode, pull): Inicializa os pinos

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:

Pin.IRQ_FALLING: interrupção na borda descendente

Pin.IRQ_RISING: interrupção na borda ascendente

3: interrupção em ambas as bordas


Manipulador: função de retorno de chamada

Horário de aula

Antes de cada uso do módulo time , adicione a instrução “import time” no topo do arquivo python

time.sleep(sec): Dorme por um determinado número de segundos

sec: Este argumento deve ser um int ou um float.

time.sleep_ms(ms): dorme por um determinado número de milissegundos, ms deve ser um int.

time.sleep_us(us): dorme por um determinado número de microssegundos, us deve ser um int.

time.time(): Obtém o timestamp da CPU, tendo o segundo como unidade.

time.ticks_ms(): Retorna o valor incremental do contador de milissegundos, que reconta após alguns valores.

time.ticks_us(): Retorna microssegundos

time.ticks_cpu(): Semelhante a ticks_ms() e ticks_us(), mas é mais preciso (relógio de retorno da CPU).

time.ticks_add(ticks, delta): Obtém o carimbo de data/hora após o deslocamento.

ticks: ticks_ms()ÿticks_us()ÿticks_cpu()

delta: Delta pode ser um número inteiro arbitrário ou expressão numérica

time.ticks_diff(old_t, new_t): Calcula o intervalo entre dois carimbos de data/hora, como ticks_ms(), ticks_us() ou ticks_cpu().

old_t: Hora de início

new_t: Hora de término

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 1 LED (Importante) 55

Projeto 1.2 Piscar

Neste projeto usaremos o ESP32 para controlar o piscar de um LED comum.

Lista de Componentes

ESP32-WROVER x1 Placa de extensão GPIO x1

Tábua de ensaio x1

LEDx1 Resistência 220ÿ x1 Camisola M/M x2

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

“Polar” (pense em uma rua de mão única).

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

56 Capítulo 1 LED (Importante) www.freenove.com ÿ

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.

No diagrama a seguir, a corrente através de R1 é: I=U/R=5V/10kÿ=0,0005A=0,5mA.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 1 LED (Importante) 57

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.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

58 Capítulo 1 LED (Importante) www.freenove.com ÿ

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]

Alfinete mais longo

Não gire o ESP32-WROVER 180° para conexão.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 1 LED (Importante) 59

Código

Os códigos usados neste tutorial são salvos em “Freenove_Ultimate_Starter_Kit_for_ESP32/Python/


Códigos_Python”. Você pode mover os códigos para qualquer local. Por exemplo, salvamos os códigos no Disco (D) com o
caminho “D:/Micropython_Codes”.

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á.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

60 Capítulo 1 LED (Importante) www.freenove.com ÿ

1, Parar/Reiniciar back-end

2ÿExecute o script atual

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.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 1 LED (Importante) 61

Fazendo upload do código para ESP32

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.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

62 Capítulo 1 LED (Importante) www.freenove.com ÿ

Carregue boot.py da mesma maneira.

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]

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 2 Botão e LED 63

Capítulo 2 Botão e LED


Normalmente, existem três partes essenciais em um dispositivo de controle automático completo: ENTRADA, SAÍDA e CONTROLE.
Na última seção, o módulo LED era a parte de saída e o ESP32 era a parte de controle. Em aplicações práticas, não apenas fazemos
os LEDs piscarem, mas também fazemos com que um dispositivo sinta o ambiente circundante, receba instruções e, em seguida, tome
as medidas apropriadas, como acender os LEDs, ligar uma campainha e assim por diante.

Ao controle:

ESP32,
RPI, Arduino,
MCU e etc

Entrada: Saída:
interruptores, LED, campainha,

sensores e etc. motor e etc

A seguir, construiremos um sistema de controle simples para controlar um LED por meio de um botão de pressão.

Botão e LED do Projeto 2.1

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.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

64 Capítulo 2 Botão e LED www.freenove.com ÿ

Lista de Componentes

ESP32-WROVER x1 Placa de extensão GPIO x1

Tábua de ensaio x1

Camisola M/M x4 LEDx1 Resistência 220ÿ x1 Resistência 10kÿ x2 Botão de pressão x1

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 2 Botão e LED 65

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]

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

66 Capítulo 2 Botão e LED www.freenove.com ÿ

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.

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” ÿ “02.1_ButtonAndLed” e clique duas vezes em
“ButtonAndLed.py”.
02.1_ButtonAndLed

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.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 2 Botão e LED 67

Carregar código para ESP32

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.

Carregue boot.py da mesma maneira.

Certifique-se de ter

carregado ButtonAndLed.py eboot.py

aqui.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

68 Capítulo 2 Botão e LED www.freenove.com ÿ

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.

A seguir está o código do programa:


1 do Pin de importação da máquina

2
3 led = Pino (2, Pino.OUT)

4
5 #criar objeto de botão do pin13, definir Pin13 como entrada

6 botão = Pino (13, Pino.IN, Pino.PULL_UP)

7
8 tentar:

9 enquanto Verdadeiro:

10 se não for button.value():

11 led.value(1) #Define o led para ligar

12 outro:

13 led.value(0) #Define o LED para desligar

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.

1 do Pin de importação da máquina

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

6 botão = Pino (13, Pino.IN, Pino.PULL_UP)

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 2 Botão e LED 69

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:

10 se não for button.value():

11 led.value(1) #Define o led para ligar

12 outro:

13 led.value(0) #Define o LED para desligar

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 …

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

70 Capítulo 2 Botão e LED www.freenove.com ÿ

Candeeiro de mesa Project 2.2 MINI

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.

Primeiro, vamos aprender algo sobre o botão de pressão.

Debounce para 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”.

imprensa estábulo liberar estábulo

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.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 2 Botão e LED 71

Código

02.2_Candeeiro de mesa

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” ÿ “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]

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

72 Capítulo 2 Botão e LED www.freenove.com ÿ

Carregar código para ESP32

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.

Carregue boot.py da mesma maneira.

Certifique-se de ter

carregado TableLamp.py e boot.py

aqui

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 2 Botão e LED 73

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.

A seguir está o código do programa:


1 hora de importação

2 do Pin de importação da máquina

3
4 led = Pino (2, Pin.OUT) botão

5 = Pino (13, Pin.IN, Pin.PULL_UP)

6
7 def reverseGPIO():

8 se led.value():

9 led.valor(0)

10 outro:

11 led.valor(1)

12
13 enquanto Verdadeiro:

14 se não for button.value():

15 hora.sleep_ms(20)

16 se não for button.value():

17 GPIO reverso()

18 enquanto não button.value():

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)

16 se não for button.value():

17 GPIO reverso()

18 enquanto não button.value():

19 hora.sleep_ms(20)

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

74 Capítulo 2 Botão e LED www.freenove.com ÿ

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)

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 3 Barra de LED 75

Capítulo 3 Barra de LED

Aprendemos como controlar o piscar de um LED, a seguir aprenderemos como controlar vários LEDs.

Projeto 3.1 Luz Fluente

Neste projeto, usamos vários LEDs para fazer uma luz fluida.

Lista de Componentes

ESP32-WROVER x1 Placa de extensão GPIO x1

Tábua de ensaio x1

Camisola M/M x10 Gráfico de barras LED x1 Resistência 220ÿ x10

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

76 Capítulo 3 Barra de LED www.freenove.com ÿ

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.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 3 Barra de LED 77

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]

Se a LEDbar não funcionar, tente girar a LEDbar 180°. O rótulo é aleatório.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

78 Capítulo 3 Barra de LED www.freenove.com ÿ

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 é

repetido para alcançar os “movimentos” da água corrente.

03.1_Luz Fluente

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” ÿ “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]

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 3 Barra de LED 79

A seguir está o código do programa:


1 hora de importação

2 do Pin de importação da máquina


3
4 pinos=[15,2,0,4,5,18,19,21,22,23]
5
6 def exibido():
7 comprimento = len

8 (pinos) para i no intervalo (0, comprimento):

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

8 (pinos) para i no intervalo (0, comprimento):

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)

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

80 Capítulo 3 Barra de LED www.freenove.com ÿ

Referência

para i no intervalo (início, fim, num: int = 1)


O loop For é usado para executar um programa indefinidamente e iterar na ordem dos itens (uma lista ou uma string) no
início da

sequência: O valor inicial, o loop for começa com ele end: O

valor final, o loop for termina com ele num: Num é adicionado

automaticamente cada vez aos dados. O valor padrão é 1

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 4 Analógico e PWM 81

Capítulo 4 Analógico e PWM

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.

Projeto 4.1 LED de respiração

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

ESP32-WROVER x1 Placa de extensão GPIO x1

Tábua de ensaio x1

LEDx1 Resistência 220ÿ x1 Camisola M/M x2

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

82 Capítulo 4 Analógico e PWM www.freenove.com ÿ

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%:

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 4 Analógico e PWM 83

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.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

84 Capítulo 4 Analógico e PWM www.freenove.com ÿ

O circuito

Este circuito é igual ao do projeto Blink.


Diagrama esquemático

Conexão de hardware. Se precisar de algum suporte, entre em contato conosco através de: [email protected]

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 4 Analógico e PWM 85

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

gradualmente, como se respirasse.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

86 Capítulo 4 Analógico e PWM www.freenove.com ÿ

A seguir está o código do programa:


1 do pino de importação da máquina , PWM

2 hora de importação

3
4 pwm =PWM(Pino(2,Pino.OUT),10000)

5 tentar:

6 enquanto Verdadeiro:

7 para i no intervalo (0,1023):

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 ()

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 4 Analógico e PWM 87

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.

pin: Pinos PWM são suportados, como Pin(0)ÿPin(2)ÿPin(4)ÿPin(5)ÿPin(10)ÿPin(12~19)ÿPin(21)ÿPin(22) ÿ


Pino(23)ÿPino(25~27).
freq: Frequência de saída, com faixa de 0-78125 Hz
duty: Ciclo de trabalho, com faixa de 0-1023.
PWM.init (freq, duty): Inicializa o PWM, os parâmetros são iguais aos acima.
PWM.freq([freq_val]): Quando não há parâmetro, a função obtém e retorna a frequência PWM; Quando os
parâmetros são definidos, a função é usada para definir a frequência PWM e não retorna nada.
PWM.duty([duty_val]): Quando não há parâmetro, a função obtém e retorna o ciclo de trabalho PWM; Quando os
parâmetros são definidos, a função é usada para definir o ciclo de trabalho PWM.
PWM.deinit(): DESLIGUE o PWM.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

88 Capítulo 4 Analógico e PWM www.freenove.com ÿ

Projeto 4.2 Luz Fluente de Meteoros

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

ESP32-WROVER x1 Placa de extensão GPIO x1

Tábua de ensaio x1

Camisola M/M x10 Gráfico de barras LED x1 Resistência 220ÿ x10

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 4 Analógico e PWM 89

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]

Se a LEDbar não funcionar, tente girar a LEDbar 180°. O rótulo é aleatório.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

90 Capítulo 4 Analógico e PWM www.freenove.com ÿ

Código

Flowing Light com cauda foi implementado com PWM.


Abra “Thonny”, clique em “Este computador” ÿ “D:” ÿ “Micropython_Codes” ÿ “04.2_FlowingLight”. Selecione
“pwm.py”, clique com o botão direito para selecionar “Upload to /”, aguarde o upload de “pwm.py” para ESP32-WROVER e clique
duas vezes em “FlowingLight.py”
04.2_Luz Fluente

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.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 4 Analógico e PWM 91

A seguir está o código do programa:


1 do pino de importação da máquina , PWM

2 de pwm importar myPWM

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:

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)

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)

Primeiro definimos 8 GPIO, 8 canais PWM e 24 valores de largura de pulso.


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])

Feche o PWM do objeto myPWM.


14 meupwm.deinit()

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

92 Capítulo 4 Analógico e PWM www.freenove.com ÿ

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()

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 4 Analógico e PWM 93

Segundo, importe o módulo personalizado “custom” para main.py

Importar módulo personalizado

Chame a função rand()


do módulo personalizado

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

94 Capítulo 5 RGBLED www.freenove.com ÿ

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.

Projeto 5.1 Luz de cor aleatória

Neste projeto faremos um LED multicolorido. E podemos controlar o RGBLED para alternar cores diferentes automaticamente.

Lista de Componentes

ESP32-WROVER x1 Placa de extensão GPIO x1

Tábua de ensaio x1

LED RGB x1 Resistência 220ÿ x3 Camisola M/M x4

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 5 RGBLED 95

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.

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

96 Capítulo 5 RGBLED www.freenove.com ÿ

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]

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

ÿwww.freenove.com Capítulo 5 RGBLED 97

Código

Precisamos criar três canais PWM e usar o ciclo de trabalho aleatório para criar cores RGBLED aleatórias.

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” ÿ “05.1_RandomColorLight” e clique duas vezes em
“RandomColorLight.py”.
05.1_RandomColorLight

Clique em “Executar script atual”, o RGBLED começa a exibir cores aleatórias.


Se você tiver alguma dúvida, entre em contato conosco através de: [email protected]

Quaisquer preocupações? ÿ [email protected]


Machine Translated by Google

98 Capítulo 5 RGBLED www.freenove.com ÿ

A seguir está o código do programa:


1 do pino de importação da máquina , PWM

2 de importação aleatória randint

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)

20 azul = 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()

Importação de módulos Pin, PWM e Função Randon.


12 do pino de importação da máquina , PWM

13 de importação aleatória randint

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)

Defina uma função para definir a cor do RGBLED.

11 def setColor(r,g,b):

12 pwm0.duty(1023-r)

13 pwm1.duty(1023-g)

14 pwm2.duty(1023-b)

Quaisquer preocupações? ÿ [email protected]

Você também pode gostar