Índice:

Recursos menos conhecidos do Arduino: 9 etapas
Recursos menos conhecidos do Arduino: 9 etapas

Vídeo: Recursos menos conhecidos do Arduino: 9 etapas

Vídeo: Recursos menos conhecidos do Arduino: 9 etapas
Vídeo: Explorando o Arduino - Aula 9 - Botão Multi Funções 2024, Julho
Anonim
Recursos menos conhecidos do Arduino
Recursos menos conhecidos do Arduino

Esta é mais uma lista de recursos não mencionados com tanta frequência das plataformas Arduino normalmente usadas (por exemplo, Uno, Nano). Essa lista deve funcionar como uma referência sempre que você precisar pesquisar esses recursos e divulgá-los.

Observe o código para ver exemplos de todos esses recursos, pois os usei em vários de meus projetos aqui no instructable (por exemplo, Arduino 1-wire Display (144 Chars)). As etapas a seguir explicam um recurso de cada.

Etapa 1: tensão de alimentação

O Arduino pode medir sua própria tensão de alimentação de forma indireta. Medindo a referência interna com a tensão de alimentação como referência de limite superior, você pode obter a relação entre a referência interna e a tensão de alimentação (a tensão de alimentação atuando como limite superior para a leitura analógica / ADC). Como você sabe o valor exato da referência de tensão interna, você pode calcular a tensão de alimentação.

Para obter detalhes exatos sobre como fazer isso, incluindo código de exemplo, consulte:

  • Voltímetro secreto do Arduino - meça a tensão da bateria:
  • O Arduino pode medir seu próprio Vin ?:

Etapa 2: temperatura interna

Alguns Arduino são equipados com um sensor de temperatura interno e podem, portanto, medir sua temperatura interna (semicodutor).

Para obter detalhes exatos sobre como fazer isso, incluindo código de exemplo, consulte:

Sensor de temperatura interna:

O Arduino pode medir seu próprio Vin ?:

Etapa 3: Comparador analógico (interrupção)

O Arduino pode configurar um comparador analógico entre os pinos A0 e A1. Então, um fornece o nível de tensão e o outro é verificado quanto ao cruzamento desta tensão. Uma interrupção é gerada dependendo se o cruzamento é uma borda ascendente ou descendente (ou ambas). A interrupção pode então ser detectada pelo software e agida de acordo.

Para obter detalhes exatos sobre como fazer isso, incluindo código de exemplo, consulte:

Interrupção do comparador analógico:

Etapa 4: contador

Claro que o AVR tem vários contadores incluídos. Normalmente, eles são usados para configurar o temporizador de várias frequências e aumentar as interrupções conforme a necessidade. Outro uso muito antiquado é usá-los apenas como contadores, sem nenhuma mágica adicional, apenas leia o valor quando precisar (pesquisa). Um uso intressante disso poderia ser o de-bounce botões, por exemplo, Confira, por exemplo, este post: Contador AVR Exemplo T1

Etapa 5: Constantes Predefinidas

Existem algumas variáveis predefinidas que podem ser usadas para adicionar informações de versão e compilação ao seu projeto.

Para obter detalhes exatos sobre como fazer isso, incluindo código de exemplo, consulte:

Serial.println (_ DATE_); // data de compilação

Serial.println (_ TIME_); // tempo de compilação

String stringOne = String (ARDUINO, DEC);

Serial.println (stringOne); // versão do IDE do Arduino

Serial.println (_ VERSION_); // versão gcc

Serial.println (_ FILE_); // arquivo compilado

esses fragmentos de código produzirão esses dados no console serial.

Etapa 6: reter a variável na RAM por meio da reinicialização

É bem sabido que o Arduino Uno (ATmega328) tem EEPROM interna que permite preservar valores e configurações durante o desligamento e restaurá-los na próxima inicialização. Um fato não tão conhecido pode ser que é realmente possível preservar o valor durante a redefinição, mesmo na RAM - no entanto, os valores se perdem durante o ciclo de energia - com a sintaxe:

variável longa sem sinal_que_é_preservado _atributo_ ((seção (".noinit")));

Isso permite, por exemplo, contar o número de RESETs e usando EEPROM também o número de inicializações.

Para obter detalhes exatos sobre como fazer isso, incluindo código de exemplo, consulte:

  • Reter a variável na memória RAM por meio de redefinição:
  • Biblioteca EEPROM:

Etapa 7: acessar o sinal do relógio

Arduinos e outros AVR (como ATtiny) têm um relógio interno que permite executá-los sem usar um oscilador de cristal externo. Além disso, ao mesmo tempo, eles também são capazes de conectar este sinal ao exterior, colocando-o em um pino (por exemplo, PB4). A parte complicada aqui é que você precisa trocar os bits de fusível do chip para habilitar esse recurso, e trocar os bits de fusível sempre acarreta o risco de travar o chip.

Você precisa habilitar o fusível CKOUT e a maneira mais fácil de fazer isso é seguindo as instruções em Como trocar os bits do fusível do AVR Atmega328p - Microcontrolador de 8 bits usando Arduino.

Para obter detalhes exatos sobre como fazer isso, incluindo código de exemplo, consulte:

  • Ajustando o oscilador interno ATtiny: https://becomingmaker.com/tuning-attiny-oscillator …
  • Como mudar os bits do fusível do AVR Atmega328p - Microcontrolador de 8 bits usando Arduino:

Etapa 8: Estrutura interna da porta de ATmega328P

Conhecer a estrutura interna das portas do ATmega328P nos permite ir além dos limites de uso padrão. Consulte a seção sobre medidor de capacitância para faixa de 20 pF a 1000 nF para obter mais detalhes e um esquema do circuito interno.

O exemplo simples é usar botões com portas digitais que não precisam de nenhum resistor devido ao uso de resistor pull-up interno, conforme mostrado pelo Input Pullup Serial Example ou o Instructable Arduino Button With No Resistor.

Mais avançado é o uso desse conhecimento, conforme mencionado, para medir capatores tão pequenos quanto 20 pF e, além disso, sem qualquer fiação adicional! Para atingir esse desempenho, o exemplo faz uso da impedância interna / de entrada, do resistor pull-up interno e do capacitor parasita. Compare com o tutorial do medidor de capacitância do Arduino, que não pode ser inferior a alguns nF.

Etapa 9: LED integrado (integrado) como fotodetector

Muitas placas Arduino têm LEDs integrados ou integrados que podem ser controlados a partir do código, por exemplo, as placas Uno ou Nano no pino 13. Adicionando um único fio deste pino a um pino de entrada analógica (por exemplo, A0), também podemos usar este LED como fotodetector. Isso pode ser usado em uma variedade de maneiras diferentes, como; use para medir a iluminação ambiental, use LED como botão, use LED para comunicação bidirecional (PJON AnalogSampling), etc.

Recomendado: