Índice:

Incrivelmente fácil de programar !: 10 etapas
Incrivelmente fácil de programar !: 10 etapas

Vídeo: Incrivelmente fácil de programar !: 10 etapas

Vídeo: Incrivelmente fácil de programar !: 10 etapas
Vídeo: Lógica de programação, por onde começar ? (Guia RÁPIDO de estudos completo para INICIANTES) 2024, Novembro
Anonim
Image
Image
Incrivelmente fácil de programar!
Incrivelmente fácil de programar!

Hoje, vou falar sobre o STM32 Core, o L476RG, que é a cara do Ultra Low Power. Você pode vê-lo à esquerda da imagem. Este dispositivo possui duas barras de pinos fêmeas, uma de cada lado, que nada mais são do que os conectores para a blindagem do arduino. Isso é ótimo, não?

Na minha opinião, a STMicroelectronics fez isso em seu Kit de Desenvolvimento porque sabe que profissionais usam esse chip. Esta empresa está indo cada vez mais para o arduino. E isso também é verdade para vários outros kits profissionais de STMicroelectronics.

Finalmente, em relação ao projeto de hoje, usaremos dois sensores DS18b20 além do L476RG. Portanto, faremos uma montagem simples usando o L476RG, importaremos uma biblioteca para o ambiente MBED, criaremos um programa no ambiente MBED e obteremos dados do L476RG via USB / Serial.

Já falei um pouco sobre o L476RG neste vídeo: A MANEIRA MAIS FÁCIL DE PROGRAMAR UM MICROCONTROLADOR, onde mostro como configurar o ambiente MBED, que é online.

Algumas pessoas que seguem meus vídeos estão me perguntando se o STM32 substitui o ESP32. Digo uma coisa: não substitui e não poderia, porque são duas coisas completamente diferentes.

Este chip STM32 é um microcontrolador, ou melhor; não é um "aglomerado de coisas" como o ESP32. Portanto, o nome pode parecer semelhante, mas são totalmente diferentes. O STM32 é um microcontrolador de uso geral, como um PIC, um Atmel, por exemplo.

Etapa 1: Recursos usados

Recursos Usados
Recursos Usados

1 núcleo L476RG

2 sensores DS18b20 (usamos os módulos impermeáveis comuns no mercado)

1 resistor 4k7

Mini protoboard

Jumpers para conexão

Etapa 2: Montagem

conjunto
conjunto

Inicialmente, faremos a montagem com um dos sensores de temperatura.

Sua potência será de 5V.

Um resistor 4k7 será usado para fazer um pull-up na linha de dados (1 fio).

Vamos ler os dados usando o pino A0.

Etapa 3: Novo programa em MBED

Novo programa em MBED
Novo programa em MBED
Novo programa em MBED
Novo programa em MBED
Novo programa em MBED
Novo programa em MBED

Depois de configurar sua conta no MBED e acessá-la, criaremos um novo programa. Para fazer isso, clique com o botão direito em "Meus programas" e selecione "Novo programa …"

Confirme se a "Plataforma" está de acordo com a placa que você está usando.

Agora clicamos em "Template".

Vamos criar um programa baseado no exemplo, "Exibir uma mensagem no PC usando UART".

Digite o nome do programa em "Nome do programa".

Marque a opção "Atualizar este programa e bibliotecas para a revisão mais recente".

Uma nova pasta para o seu programa será criada, incluindo a biblioteca MBED padrão e o arquivo main.cpp.

Você pode usá-lo para testar se tudo está funcionando bem. Para fazer isso, basta compilá-lo e copiá-lo para a plataforma.

Usando um terminal serial de sua escolha, você pode receber as seguintes mensagens.

Etapa 4: Importando a Biblioteca DS18b20

Importando a Biblioteca DS18b20
Importando a Biblioteca DS18b20

Como existem várias versões de bibliotecas para o Ds18b20, importaremos usando uma url para que seu exemplo use a mesma biblioteca.

Etapa 5: Novo programa em MBED

Novo programa em MBED
Novo programa em MBED
Novo programa em MBED
Novo programa em MBED

No campo "URL da fonte", preencha: https://os.mbed.com/users/Sissors/code/DS1820/ e clique em importar.

Sua biblioteca DS1820 deve aparecer na pasta do programa.

Etapa 6: Código Fonte

Inclui

Começamos incluindo as bibliotecas necessárias.

#include "mbed.h" // inclusão da biblioteca padrão do MBED # include "DS1820.h" // inclusão da biblioteca do sensor DS1820

Definimos constantes que representarão os pinos usados.

Observe que o DS18b20 é um sensor com comunicação 1-WIRE. Por este motivo, utilizamos a biblioteca que tratará de todo o protocolo de comunicação com os dispositivos. Isso inclui a identificação de cada dispositivo até os comandos de leitura.

# define PINO_DE_DADOS A0 // define o pino para leitura dos dados # define MAX_SENSORES 16 // define o número máximo para o vetor de sensores

Criamos um vetor que apontará para cada um dos 16 dispositivos possíveis conectados à linha de dados.

Sensor DS1820 * [MAX_SENSORES]; // cria um vetor com 16 posições para os sensores

Iniciamos o método main (), onde, usando o método "unassignedProbe ()" contido na biblioteca DS1820, procuramos todos os dispositivos disponíveis na linha de comunicação.

Preenchemos o vetor de sensores com as instâncias que representarão cada um dos sensores disponíveis.

Fazemos isso até que o último seja encontrado ou até atingirmos o máximo de 16 sensores.

int main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// inicia a procura por sensores sensores [encontrados] = new DS1820 (PINO_DE_DADOS); // cria uma instancia para o sensor encontrado encontrados ++; if (encontrados == MAX_SENSORES) // verifica se atingiu o máximo de sensores de ruptura; }

Enviamos o número de sensores encontrados na linha.

printf ("Dispositivos encontrados (s):% d / r / n / n", encontrados);

Iniciamos um loop infinito, solicitando que todos os sensores disponíveis calculem suas respectivas temperaturas, e então iteramos através do vetor do sensor enviando as leituras obtidas.

printf ("Dispositivos encontrados (s):% d / r / n / n", encontrados); while (1) {sensor [0] -> convertTemperature (true, DS1820:: all_devices); // solicitação a leitura de temperatura para todos os dispositivos encontrados para (int i = 0; itemperature ()); //… e retorna a temperatura printf ("\ r / n"); esperar (1); }

Etapa 7: Dados recebidos

Dados recebidos
Dados recebidos

Usando um único sensor, obtemos a seguinte saída serial.

Etapa 8: Incluindo mais sensores

Incluindo mais sensores
Incluindo mais sensores
Incluindo mais sensores
Incluindo mais sensores

Para testar o código, introduzimos outro sensor na linha de comunicação, simplesmente conectando-o em paralelo com o primeiro sensor.

Lembre-se de desligar o conjunto antes de conectar novos sensores.

Ao reiniciar a montagem, obtivemos a seguinte saída, sem nenhuma alteração no código-fonte.

Etapa 9: Ver fonte

#include "mbed.h" // inclusão da biblioteca padrão do MBED # include "DS1820.h" // inclusão da biblioteca do sensor DS1820 #define PINO_DE_DADOS A0 // define o pino para leitura dos dados #define MAX_SENSORES 16 // define o número máximo de vetores de sensores DS1820 * sensor [MAX_SENSORES]; // cria um vetor com 16 posições para os sensores int main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// inicia a procura por sensores de sensores [encontrados] = new DS1820 (PINO_DE_DADOS); // cria uma instancia para o sensor encontrado encontrados ++; if (encontrados == MAX_SENSORES) // verifica se atingiu o máximo de sensores de ruptura; } printf ("Dispositivos encontrados (s):% d / r / n / n", encontrados); while (1) {sensor [0] -> convertTemperature (true, DS1820:: all_devices); // solicitação a leitura de temperatura para todos os dispositivos encontrados para (int i = 0; itemperature ()); //… e retorna a temperatura printf ("\ r / n"); esperar (1); }}

Etapa 10: Arquivos

PDF

Outros

Recomendado: