
Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-23 15:03




Neste instrutível, vou explicar como
- controlar um motor DC com PWM
- comunicar via UART
- lidar com interrupções do cronômetro
Em primeiro lugar, usaremos uma placa de desenvolvimento de sistema AVR Core que você pode encontrar no Aliexpress por volta de 4 USD. O link da placa de desenvolvimento está aqui. Também usaremos o Atmel ICE Debugger e o Atmel Studio para programar e depurar nosso software.
Etapa 1: Mergulho Profundo na Folha de Dados e Código Fonte - Velocidade do Relógio



Em 1. o marcador, definimos nossa frequência de cristal, onde podemos ver na placa de desenvolvimento
Etapa 2: Configurando Registros UART




Para se comunicar com o UART, você deve definir os registros de taxa de transmissão USART - UBRRnL e UBRRnH corretamente, você pode calculá-lo sozinho ou pode usar a calculadora online para obter os valores corretos facilmente
Calculadora Online
ruemohr.org/~ircjunk/avr/baudcalc/avrbaudca…
Então o valor de MYUBBR é calculado, no registro UCSR0B nós habilitamos RXEN0 (habilitar recv) TXEN0 (habilitar transmissão) e RXCIE0 (RX para interrupção). No registro UCSR0C nós selecionamos o tamanho do char de 8 bits.
Depois de definir o bit de interrupção RX, devemos adicionar a função ISR para USART0_RX_vect
ISR (USART0_RX_vect) {char rcvChar = UDR0; if (rcvChar! = '\ n') {buffer [bufferIndex] = rcvChar; bufferIndex ++; }}
Você não deve fazer nenhuma lógica de negócios em sua rotina de serviço de interrupção. Você tem que fazer a função retornar o mais rápido possível.
Etapa 3: Configurações de PWM

Na função initPWM, definimos o escalonador de relógio da CPU, o modo Timer / Contador como Fast PWM e definimos seu comportamento com bits COM
Também devemos conectar o motor DC ao pino OC2, que é especificado na Tabela 66. Compare o modo de saída, modo PWM rápido em nossa folha de dados, você também verá que o pino OC2 é (OC2 / OC1C) PB7
Etapa 4: Resultado


Quando você carrega o código-fonte no anexo.
Você pode inserir um novo valor PWM (0-255) do UART (você pode usar o terminal de porta serial do arduino) para definir a velocidade do motor DC.
Recomendado:
Motor de passo controlado por motor de passo - Motor de passo como codificador giratório: 11 etapas (com imagens)

Motor de passo controlado por motor de passo | Motor de passo como codificador rotativo: Você tem alguns motores de passo por aí e quer fazer alguma coisa? Neste Instructable, vamos usar um motor de passo como um codificador rotativo para controlar a posição de outro motor de passo usando um microcontrolador Arduino. Então, sem mais delongas, vamos
Controle de brilho Controle de LED baseado em PWM usando botões, Raspberry Pi e Scratch: 8 etapas (com imagens)

Controle de brilho Controle de LED baseado em PWM usando botões de pressão, Raspberry Pi e Scratch: Eu estava tentando encontrar uma maneira de explicar como PWM funcionava para meus alunos, então me propus a tarefa de tentar controlar o brilho de um LED usando 2 botões de pressão - um botão aumenta o brilho de um LED e o outro escurece. Para programar
CONTROLE DE DIREÇÃO E VELOCIDADE DO MOTOR DC USANDO LABVIEW (PWM) E ARDUINO: 5 etapas

CONTROLE DE DIREÇÃO E VELOCIDADE DO MOTOR DC USANDO LABVIEW (PWM) E ARDUINO: Olá pessoal, em primeiro lugar, desculpe meu inglês engraçado. Neste instrutível, vou mostrar a vocês como controlar a velocidade de um motor DC usando labview. Vamos começar
Árvore da Vida (Arduino Capacitive Touch Sensor Driving Servo Motor): 6 etapas (com imagens)

Tree of Life (servo motor do sensor capacitivo de toque Arduino): Para este projeto, fizemos uma árvore doadora de arroz que consistia de um sensor de toque capacitivo e um servo motor. Ao tocar no tapete, o servo motor seria ativado e o arroz (ou o que você quiser colocar nele) seria liberado. Aqui está um pequeno vídeo
Leitor RFID AVR / Arduino com código UART em C: 4 etapas

Leitor de RFID AVR / Arduino com código UART em C: RFID é a mania, encontrada em todos os lugares - de sistemas de inventário a sistemas de identificação de crachás. Se você já foi a uma loja de departamentos e passou por aquelas coisas que parecem detectores de metal nos pontos de entrada / saída, então você viu RFID. Existem vários