Os microcontroladores PIC têm famílias com núcleos de processamento de 12 bits, 14 bits e 16 bits, e trabalham em velocidades de 0kHz (ou DC) a 48MHz e velocidades de 16 MIPS em alguns modelos. Há o reconhecimento de interrupções tanto externas como de periféricos internos.
Ao escolher um microcontrolador é interessante fazer uma simulação do uso dos pinos desse componente....É fundamental levar em consideração:
Esses dispositivos são normalmente utilizados para controlar coisas a partir de informações que são passadas para eles - em um robô, por exemplo, o microcontrolador pode ligar ou desligar um motor assim que recebe um comando de um teclado ou controle.
Tmega328
Na verdade Ewerton, o pino Aref serve como uma referencia de tensao para o conversor AD do microcontrolador.
analogRead() Lê o valor de um pino analógico especificado. A placa Arduino possui um conversor analógico-digital 10 bts de 6 canais (8 canais nos Mini e Nano, 16 no Mega, 7 canais em placas MKR). Isso significa que este irá mapear tensões entre 0 e a tensão operacional (5V or 3.
A instrução digitalRead(número-do-pino) serve para ler o nível lógico de um pino de entrada. O valor pode ser ALTO (HIGH) ou BAIXO (LOW). Normalmente HIGH corresponde a 5V e LOW corresponde a 0V (mas na prática o Arduino irá considerar como HIGH qualquer valor de tensão de 3 volts ou mais.
digitalWrite() Aciona um valor HIGH ou LOW em um pino digital. Se o pino for configurado como saída (OUTPUT) com a função pinMode() , sua tensão será acionada para o valor correspondente: 5V (ou 3.
Funções pinMode(), digitalRead() e digitalWrite() Esta função é muito utilizada no Arduino pois configura o estado de um determinado pino, isto é, indica se este irá funcionar como um canal de entrada ou de saída.
Função pinMode() Esta função permite configurar um pino específico para se comportar como um pino de entrada ou de saída. Por padrão, os pinos do Arduino tem a função de entrada, de modo que não é necessário declará-los neste caso.
O funcionamento da função delay() basicamente é “congelar” o programa em determinada parte do código por um tempo especificado em milissegundos. Durante o período em que o código está parado, não pode ocorrer nenhuma leitura de sensores, cálculos matemáticos ou manipulação de pinos.
Para demonstrar o uso da função millis, utilizei dois LEDs conectados ao Arduino, onde um dos LEDs vai piscar em intervalos de 2 segundos e o outro vai piscar em intervalos de 500ms. Os dois processos vão ocorrer simultaneamente e sem interrupções.