Você está na página 1de 16

ESCOLA TÉCNICA ESTADUAL – DRA.

RUTH CARDOSO – SÃO VICENTE

Aula 06 – 14/11/23 - SE – 2DS2


Curso: Técnico em Desenvolvimento de
Tempo de Aula Total: 2h05 minutos
Sistemas
Disciplina: Sistemas Embarcados DATA: 14/11/23 (15h55)

Comandos #define e #include


Funções
• Funções matemáticas e trigonométricas e de texto;
• Números aleatórios.

PROF. CLEBER P. DA C. NEVES DISCIPLINA: SISTEMAS EMBARCADOS


ESCOLA TÉCNICA ESTADUAL – DRA. RUTH CARDOSO – SÃO VICENTE
Documentação sobre o Arduino
• O site abaixo apresenta diversas informações relevantes para a manipulação de
diversas funções e recursos disponíveis no Arduino.

Site: https://www.arduino.cc/reference/pt/

PROF. CLEBER P. DA C. NEVES DISCIPLINA: SISTEMAS EMBARCADOS


ESCOLA TÉCNICA ESTADUAL – DRA. RUTH CARDOSO – SÃO VICENTE
Estruturas

PROF. CLEBER P. DA C. NEVES DISCIPLINA: SISTEMAS EMBARCADOS


ESCOLA TÉCNICA ESTADUAL – DRA. RUTH CARDOSO – SÃO VICENTE
Valores

PROF. CLEBER P. DA C. NEVES DISCIPLINA: SISTEMAS EMBARCADOS


ESCOLA TÉCNICA ESTADUAL – DRA. RUTH CARDOSO – SÃO VICENTE
Funções

PROF. CLEBER P. DA C. NEVES DISCIPLINA: SISTEMAS EMBARCADOS


ESCOLA TÉCNICA ESTADUAL – DRA. RUTH CARDOSO – SÃO VICENTE
Comando #define

• #define é uma diretiva muito útil da linguagem C++ que permite ao programador dar um
nome a um valor constante antes de o programa ser compilado. Constantes definidas no
arduino não ocupam nenhum espaço na memória de programa do chip. O compilador irá
substituir referências a essas constantes pelo valor definido no tempo de compilação.

• Sintaxe
• #define nomeDaConstante valor

• Exemplo
• #define pinoLED 3

PROF. CLEBER P. DA C. NEVES DISCIPLINA: SISTEMAS EMBARCADOS


ESCOLA TÉCNICA ESTADUAL – DRA. RUTH CARDOSO – SÃO VICENTE
Comando #include

• A diretiva #include é usada para


incluir bibliotecas externas ao seu
sketch. Isso dá acesso a um grande
número de bibliotecas padrão da
linguagem C (grupos de funções
prontas), e também bibliotecas
escritas especialmente para a
linguagem Arduino.
• Sintaxe
• #include <nomedabilbioteca.h>

PROF. CLEBER P. DA C. NEVES DISCIPLINA: SISTEMAS EMBARCADOS


ESCOLA TÉCNICA ESTADUAL – DRA. RUTH CARDOSO – SÃO VICENTE
Funções matemáticas

• abs() - Calcula o módulo (ou valor absoluto) de um número - abs(x)


• constrain() - Restringe um número a ficar dentro de um intervalo - constrain(x, a, b)
• map() – mapear um número conforme critérios - =map(valor, deMenor, deMaior, paraMenor,
paraMaior);
• max() - Calcula o maior de dois números - max(x, y)
• min() - Calcula o menor de dois números - min(x, y)
• pow() - Calcula o valor de um número elevado a uma potência - pow(base, expoente)
• sq() - Calcula o quadrado de um número: o número multiplicado por si mesmo - sq(x)
• sqrt() - Calcula a raiz quadrada de um número - sqrt(x)

PROF. CLEBER P. DA C. NEVES DISCIPLINA: SISTEMAS EMBARCADOS


ESCOLA TÉCNICA ESTADUAL – DRA. RUTH CARDOSO – SÃO VICENTE
Funções trigonométricas

• cos() - Calcula o cosseno de um ângulo (em radianos). O resultado é dado entre -1 e 1 - cos(rad)
• sin() - Calcula o seno de um ângulo (em radianos). O resultado é dado entre -1 e 1 - sin(rad)
• tan() - Calcula a tangente de um ângulo (em radianos). O resultado é dado entre -infinito e +infinito
(limitado pela tamanho do tipo de dado double) – tan(rad)

• Parâmetros
• rad: O ângulo em radianos (float).

• Retorna
• O cosseno, o seno ou a tangente do ângulo (double).

PROF. CLEBER P. DA C. NEVES DISCIPLINA: SISTEMAS EMBARCADOS


ESCOLA TÉCNICA ESTADUAL – DRA. RUTH CARDOSO – SÃO VICENTE
Funções de texto/caracteres – Parte 1
• isAlpha() - Analisa se um caractere é alfabético (isto é, se é uma letra). Retorna true (verdadeiro) se thisChar
contém uma letra - isAlpha(thisChar)
• isAlphaNumeric() - Analisa se um caractere é alfanumérico (isto é, uma letra ou um número). Retorna true
(verdadeiro) se thisChar contém ou uma letra ou um número - isAlphaNumeric(thisChar)
• isAscii() - Analisa se um caractere é Ascii. Retorna true se a variável thisChar contém um caractere Ascii -
isAscii(thisChar)
• isControl() - Analisa se uma caractere é um caractere de controle. Retorna true (verdadeiro) se thisChar é um
caractere de controle - isControl(thisChar)
• isDigit() - Analisa se uma caractere é um digito (isto é, um número). Retorna true (verdadeiro) se thisChar é
um número - isDigit(thisChar)
• isGraph() - Analisa se um caractere é imprimível com algum conteúdo (espaços são imprimíveis, mas não
possuem conteúdo). Retorna true se thisChar é imprimível - isGraph()
• isHexadecimalDigit() - Analisa se uma caractere é um digito hexadecimal (A-F, 0-9). Retorna true se thisChar
contém um digito hexadecimal - isHexadecimalDigit(thisChar)
• isLowerCase() - Analisa se uma caractere é minúsculo (isto é, uma letra minúscula). Retorna true se thisChar
contém uma letra minúscula - isLowerCase(thisChar)

PROF. CLEBER P. DA C. NEVES DISCIPLINA: SISTEMAS EMBARCADOS


ESCOLA TÉCNICA ESTADUAL – DRA. RUTH CARDOSO – SÃO VICENTE
Funções de texto/caracteres – Parte 2
• isPrintable() - Analisa se uma caractere é imprimível (isto é, qualquer caractere que produz uma saída,
até mesmo um espaço). Retorna true se thisChar é imprimível. Por impimível diz-se os caracteres que
pode ser impressos, como letras e números. Alguns caracteres são para controle e não podem ser
impressos como o new line ('\n') e o tab ('\t') - isPrintable(thisChar)
• isPunct() - Analisa se uma caractere é pontuação (isto é, uma vírgula, um ponto-e-vírgula, um ponto de
exlamação etc). Retorna true se thisChar é um caractere de pontuação - isPunct(thisChar)
• isSpace() - Analisa se uma caractere é o caractere de espaço. Retorna true se thisChar contém um
espaço - isSpace(thisChar)
• isUpperCase() - Analisa se uma caractere é maiúsculo (isto é, uma letra maisúcula). Retorna true se
thisChar é uma letra maiúscula - isUpperCase(thisChar)
• isWhitespace() - Analisa se um caractere é um espaço em branco, isto é o próprio caractere de espaço
(' '), formfeed ('\f'), nova linha ('\n'), retorno ('\r'), tab horizontal ('\t') e tab vertical ('\v')). Retorna true
se thisChar contém um espaço em branco - isWhitespace(thisChar)

PROF. CLEBER P. DA C. NEVES DISCIPLINA: SISTEMAS EMBARCADOS


ESCOLA TÉCNICA ESTADUAL – DRA. RUTH CARDOSO – SÃO VICENTE
Funções de números aleatórios - Parte 1
• Função random()

• A função random() gera números pseudoaleatórios


• Sintaxe
• random(max) random(min, max)

• Parâmetros
• min - menor limite do valor aleatório, inclusivo e opcional (long)

• max - maior limite do valor aleatório, exclusivo (long)

• Retorna
• Um número inteiro aleatório entre min e max-1 (long) .

PROF. CLEBER P. DA C. NEVES DISCIPLINA: SISTEMAS EMBARCADOS


ESCOLA TÉCNICA ESTADUAL – DRA. RUTH CARDOSO – SÃO VICENTE
Funções de números aleatórios - Parte 2
• Função randomSeed()
• randomSeed() inicializa o gerador de números pseudoaleatórios, fazendo o começar em um ponto arbitrário em sua
sequência aleatória. Essa sequência, enquanto muito longa, e aleatória, é sempre a mesma.
• Se é importante que uma sequência de valores gerados por random() seja diferente em execuções subsequentes de um
sketch, use randomSeed() para inicializar o gerador de números aleatórios com uma entrada significantemente
aleatória, como analogRead() em um pino desconectado.
• Por outro lado, pode ser ocasionalmente útil usar sequências pseudoaleatórias exatamente repetidas. Isso pode ser
conseguido chamando-se randomSeed() com um número fixo, antes de começar a usar a sequência aleatória.

• Parâmetros
• seed - número para inicializar a sequência pseudoaleatória (long).

• Retorna
• Nada

PROF. CLEBER P. DA C. NEVES DISCIPLINA: SISTEMAS EMBARCADOS


ESCOLA TÉCNICA ESTADUAL – DRA. RUTH CARDOSO – SÃO VICENTE
Funções de números aleatórios - Exemplo

PROF. CLEBER P. DA C. NEVES DISCIPLINA: SISTEMAS EMBARCADOS


ESCOLA TÉCNICA ESTADUAL – DRA. RUTH CARDOSO – SÃO VICENTE

Sucesso a todos e muito obrigado.

PROF. CLEBER P. DA C. NEVES DISCIPLINA: SISTEMAS EMBARCADOS


ESCOLA TÉCNICA ESTADUAL – DRA. RUTH CARDOSO – SÃO VICENTE

REFERÊNCIAS
- ARDUINO - Documentação de Referência da Linguagem Arduino. Disponível em:
<https://www.arduino.cc/reference/pt/>. Acesso em: 15 de outubro de 2023.
- SOUZA. F. - Timers do ATmega328 no Arduino, 2015. Disponível em:
<https://embarcados.com.br/timers-do-atmega328-no-arduino/> Acesso em: 30 de outubro de
2023.
- FERREIRA. A. L Funções de temporização na programação com Arduino, 2021. Disponível em:
<https://www.squids.com.br/arduino/index.php/software/dicas/319-como-usar-
temporizadores-no-Arduino>. Acesso em: 30 de outubro de 2023.

PROF. CLEBER P. DA C. NEVES DISCIPLINA: SISTEMAS EMBARCADOS

Você também pode gostar