Introduzir ao funcionamento de uma Linguagem de programação
Uma linguagem de programação é uma linguagem formal, no contexto amplo que abrange matemática, ciência da computação e linguística. Por meio dela, uma determinada tarefa pode ser executada utilizando um conjunto de instruções, às vezes chamadas de comandos nesta apostila.
Por exemplo, se um cientista precisa determinar a quantidade de elementos nulos em uma matriz muito grande, como uma matriz de dimensão 1000x1000, essa tarefa se torna árdua sem o uso de um computador. Para realizar isso, ele pode seguir o seguinte procedimento:
Criação de um algoritmo: A primeira etapa do cientista é pensar em como um computador poderia contar a quantidade de zeros na matriz. Ele pode decidir criar uma variável que percorra, linha por linha, todos os elementos da matriz. Cada vez que essa variável encontre um zero (por meio de comparação, por exemplo), ela pode incrementar outra variável específica para essa contagem. Essa etapa envolve a criação da "receita de bolo", que é o algoritmo. Um exemplo famoso de algoritmo é o "método dos trapézios", utilizado para realizar integração numérica de uma função ao dividir o intervalo em vários trapézios, calculando a área de cada um e realizando a soma total
Criação do código: Nesta fase, o cientista precisa implementar o algoritmo em alguma linguagem de programação. Ele deverá criar uma variável para ler a matriz (entrada de dados), seja diretamente do teclado ou de um arquivo externo. Em seguida, outra variável será utilizada para contar a quantidade de zeros (processamento de dados) e, por fim, uma última variável será usada para informar a quantidade de zeros (saída de dados). É importante observar que essa etapa envolve três sub etapas principais: entrada, processamento e saída de dados.
A escolha da linguagem geralmente é feita com base em uma das três dimensões: conhecimento do programador, dificuldade de implementação e velocidade de processamento. Se um problema é simples de ser implementado em uma linguagem que o programador conhece bem, é natural que ele a escolha, desde que o código seja executado rapidamente, por exemplo, em um minuto ou menos. Por outro lado, se o problema demanda muito tempo para ser executado, o programador deve ponderar se vale a pena uma implementação difícil em uma linguagem veloz.
A maioria das linguagens de programação, como C, Fortran, Pascal, Java, PHP e Python, executam as linhas de comando em sequência, de cima para baixo. É assim que um iniciante em programação deve pensar ao escrever seu código.
Estrutura
A estrutura básica de todo código Arduino é composta pelas funções setup() e loop(), conforme demonstrado no trecho de código abaixo. A diferença fundamental entre essas funções é que todos os comandos localizados dentro da função setup() são executados apenas uma vez, enquanto aqueles dentro da função loop() são executados repetidamente até que o programa seja encerrado. Por exemplo, uma instrução que realize a leitura contínua de dados em um experimento deve estar dentro de loop(), enquanto a declaração de variáveis deve ser feita em setup(). É importante notar que um programa onde a variável é declarada dentro de loop() ainda funcionará, porém com menor eficiência, devido às repetidas declarações de variáveis desnecessárias.
Aqui estão os blocos de instruções dentro dessas duas funções:
void setup() {
Comando a1;
Comando a2;
}
void loop() {
Comando b1;
Comando b2;
... }
Projeto
O Projeto de hj será uma simples implementação de sirene de policia
Componentes
1 x Placa UNO R3;
1 x Cabo USB;
1 x Protoboard;
2 x Resistores;
2 x Leds
Projeto Simulador ThinkerCad
Código Arduíno
// pisca-pisca alternado
void setup() {
pinMode(12, OUTPUT); // Configura o pino 12 como saída
pinMode(11, OUTPUT); // Configura o pino 11 como saída
}
void loop() {
digitalWrite(12, HIGH); // Liga o primeiro LED
delay(125); // Aguarda 0,125 segundo
digitalWrite(12, LOW); // Desliga o primeiro LED
delay(125); // Aguarda 0,125 segundo
digitalWrite(10, HIGH); // Liga a buzina
delay(125); // Aguarda 0,125 segundo
digitalWrite(10, LOW); // desliga a buzina
delay(125); // Aguarda 0,125 segundo
digitalWrite(11, HIGH); // Liga o segundo LED
delay(125); // Aguarda 0,125 segundo
digitalWrite(11, LOW); // Desliga o segundo LED
delay(125); // Aguarda 0,125 segundo
digitalWrite(10, HIGH); // Liga a buzina
delay(125); // Aguarda 0,125 segundo
digitalWrite(10, LOW); // desliga a buzina
delay(125); // Aguarda 0,125 segundo
}