Escolar Documentos
Profissional Documentos
Cultura Documentos
de 2020
Um gerador de funções de bancada é muito útil em várias aplicações, principalmente para simular e testar um circuito
eletrônico. Seu principal uso está ligado a circuitos osciladores, filtros e amplificadores.
Usamos os osciloscópios para fazer a medição dos sinais que estão sendo recebidos em relação ao tempo. Com ele,
é possível observar a forma de onda que está sendo recebida em determinado ponto de um circuito.
Há um problema no uso do gerador de sinais: um aparelho de qualidade custa a partir de R$ 1.000,00, ou seja,
possui um custo alto, quando sua necessidade de uso é pontual e simples. Nesse caso, é possível programar um
Arduino para funcionar como um gerador de funções básico e acessível através das suas saídas PWM. Isso nos
possibilita de fazer testes para circuitos simples de forma rápida, barata e prática.
1. Onda Quadrada:
A onda quadrada é um sinal digital que funciona com alternância de níveis lógicos: 1 (amplitude máxima) e 0
(amplitude mínima). É usada como referência de tempo em sinais de clock e utilizada na informática na transmissão
serial de informações em redes de computadores.
Reproduzir esse tipo de onda no Arduino é bem simples, existe a função tone() que é responsável pela geração de
ondas quadradas, precisando apenas explicitar o pino de saída e a frequência desejada do sinal, como pode ser visto
no exemplo abaixo com uma frequência de 50 Hz.
Simulação no TinkerCad
void setup() {
Serial.begin(9600); // Inicia o Serial Monitor
}
void loop() {
// Imprime na tela a frequência gerada
Serial.println("A frequencia eh de: 50 Hz");
{
tone(6, 50); // Defini o pino em OUTPUT, e a frequencia gerada no pino
delay(2000); // Gera a frequência por 2 segundos
}
}
2. Onda triangular:
A onda triangular possui uma ascendência linear até sua amplitude máxima e uma decadência linear até sua
amplitude mínima. É normalmente usada nos sintetizadores de som.
O problema de gerar essa onda, é que ela facilmente pode apresentar ruídos. Por isso é preciso sempre colocar
algum tipo de filtro entre o sinal produzido e o circuito em que ele vai ser usado. Com o Arduino, um circuito RC
resolve esse problema.
Simulação no TinkerCad
// Onda triangular
int saidaPWM;
int x;
#define saidaPWM 3
void setup()
{
pinMode(saidaPWM, OUTPUT)
}
void loop()
{
for (x=0; x<255; x++)
{
analogWrite (saidaPWM, x);
delay(10);
}
for (x=255; x>0; x--)
{
analogWrite (saidaPWM, x);
delay(10);
}
}
// Esse código é seguido de um circuito RC na saida PWM do arduino
As aplicações são as mesmas e o código é o mesmo somente com a alteração do delay() de subida ou descida mais
próximo de zero.
Simulação no TinkerCad
int saidaPWM;
int x;
#define saidaPWM 3
void setup() {
pinMode(saidaPWM, OUTPUT);
}
void loop () {
for (x=0; x<255; x++) {
analogWrite (saidaPWM, x);
delay(10);
}
for (x=255; x>0; x--) {
analogWrite (saidaPWM, x);
delay(1);
}
}
4. Onda Senoidal:
A onda senoidal é gerada a partir da função seno ou cosseno invertendo a polaridade de acordo com a frequência,
por isso ela também é conhecida como corrente alternada. Ela possui diversas aplicações. Na eletrônica, a principal
delas é como onda portadora nas modulações de rádio.
Assim como na onda triangular, nela podem ser encontrados ruídos, logo ela também necessita de um filtro RC antes
de seu uso. O código do Arduino é muito parecido com a triangular, porém possui a adição da função sin() para a
coleta de dados.
Simulação no TinkerCad
int saidaPWM;
int x, valor;
float seno;
#define saidaPWM 3
void setup() {
pinMode (saidaPWM, OUTPUT);
void loop () {
for (x=0; x<255; x++) {
seno = 100+(100*(sin(x*(6.28/255))));
valor = int(seno);
analogWrite(saidaPWM, valor);
delay(10);
}
}