Curso de Arduino e AVR WRKits
Venho apresentar pra quem não conhece um curso gratuito que eu considero de excelente qualidade, o curso de arduino do canal WR Kits.
Demorei um tempo pra achar um curso gratuito onde a pessoa fosse direta, clara e demostrar um bom conhecimento no assunto, boas práticas de programação e claro entender de eletrônica.
Link da playlist no YouTube
Demorei um tempo pra achar um curso gratuito onde a pessoa fosse direta, clara e demostrar um bom conhecimento no assunto, boas práticas de programação e claro entender de eletrônica.
Link da playlist no YouTube
e bons estudos...
Interface com acoplador Ótico
Algumas vezes precisamos proteger o arduino ou nosso dispositivo de picos e tensões exteriores e de controlar dispositivos que consomem uma corrente acima do que a saída pode fornecer.
Para poder isolar a saída do uC pode-se usar um acoplador ótico, neste caso foi usado o 4N35.
Para poder isolar a saída do uC pode-se usar um acoplador ótico, neste caso foi usado o 4N35.
Referência: boolean
Esses operadores podem ser usados dentro de sentenças condicionais if, while.
&& (logica "e")
True somente se os dois operadores forem verdadeiros
Exemplo:
if (digitalRead(2) == HIGH && digitalRead(3) == HIGH) {
}
Será verdadeiro se as duas leituras forem altas (HIGH).
|| (lógica "ou")
True se qualquer uma das sentenças forem verdadeiras.
Exemplo:
if (x > 0 || y > 0 {
}
Será verdadeiro se x ou y for maior que 0.
&& (logica "e")
True somente se os dois operadores forem verdadeiros
Exemplo:
if (digitalRead(2) == HIGH && digitalRead(3) == HIGH) {
}
Será verdadeiro se as duas leituras forem altas (HIGH).
|| (lógica "ou")
True se qualquer uma das sentenças forem verdadeiras.
Exemplo:
if (x > 0 || y > 0 {
}
Será verdadeiro se x ou y for maior que 0.
Referência: % (resto da divisão)
Calcula o resto da divisão quando um inteiro é dividido por outro. É útil para manter uma variável dentro de um patemar específico (e.g. o tamanho de um array).
Sintaxe:
resultado = dividendo % divisor
Parâmetros:
dividendo: o número que será dividido
divisor: o número a dividir por
Retorna:
o resto
Exemplo:
x = 7 % 5; // x agora comtém 2
x = 9 % 5; // x agora comtém 4
x = 5 % 5; // x agora comtém 0
x = 4 % 5; // x agora comtém 4
Sintaxe:
resultado = dividendo % divisor
Parâmetros:
dividendo: o número que será dividido
divisor: o número a dividir por
Retorna:
o resto
Exemplo:
x = 7 % 5; // x agora comtém 2
x = 9 % 5; // x agora comtém 4
x = 5 % 5; // x agora comtém 0
x = 4 % 5; // x agora comtém 4
Referência: = (operador de atribuição)
= é um operador de atribuição ou caractere de igualdade único.
Armazena o valor à direita do caractere de igualdade único à variável nomeada à esquerda.
O caractere de igualdade único na linguagem de programação C é chamado operador de atribuição. Ele possui um significado diferente do presente na classe de álgebra, onde ele indica uma equação ou igualdade. O operador de atribuição diz ao microcontrolador para definir qualquer valor ou expressão no lado direito do caractere de igualdade e armazená-lo na variável à direita do mesmo.
Exemplo:
int sensVal; // declara uma variável inteira, nomeada sensVal
senVal = analogRead(0); // armazena a voltagem de entrada (digital) no pino analógico 0 em SensVal
Armazena o valor à direita do caractere de igualdade único à variável nomeada à esquerda.
O caractere de igualdade único na linguagem de programação C é chamado operador de atribuição. Ele possui um significado diferente do presente na classe de álgebra, onde ele indica uma equação ou igualdade. O operador de atribuição diz ao microcontrolador para definir qualquer valor ou expressão no lado direito do caractere de igualdade e armazená-lo na variável à direita do mesmo.
Exemplo:
int sensVal; // declara uma variável inteira, nomeada sensVal
senVal = analogRead(0); // armazena a voltagem de entrada (digital) no pino analógico 0 em SensVal
Referência: Constantes
Constantes são expressões predefinidas na linguagem Arduino. Eles são usados para fazer os programas mais fáceis de ler. Podemos classificar a constantes em grupos:
Definindo níveis lógicos: true e false (booleano constantes)
lá são duas constantes usadas para representar a verdade e falsidade na linguagem Arduino: true e false.
false é definido como 0 (zero).
true muitas vezes é dito ser definido como 1, o que é correto, mas é verdade, tem uma definição mais ampla. Qualquer número inteiro que é diferente de zero é verdade, no sentido de Boolean. Então -1 e 2 -200 são todos definidos como verdadeiro, também, em um sentido booleano.
Definindo níveis lógicos: true e false (booleano constantes)
lá são duas constantes usadas para representar a verdade e falsidade na linguagem Arduino: true e false.
false é definido como 0 (zero).
true muitas vezes é dito ser definido como 1, o que é correto, mas é verdade, tem uma definição mais ampla. Qualquer número inteiro que é diferente de zero é verdade, no sentido de Boolean. Então -1 e 2 -200 são todos definidos como verdadeiro, também, em um sentido booleano.
Referência: { } (chaves)
Chaves são elementos principais da linguagem de programação C. Elas são usadas em diversas construções diferentes, como as destacadas abaixo, e algumas vezes podem ser confusas para os iniciantes.
Uma chave aberta "{" sempre deve ser seguida de uma chave fechada "}". Esta é uma condição que é comumente mencionada para que as chaves sejam balanceadas. A IDE (Integrated Development Environment) do Arduino inclui um recurso conveniente para verificar o balanço das chaves. Selecione uma chave ou clique no ponto de inserção imediatamente após uma delas e sua companheira lógica será destacada.
No momento, este recurso está com alguns probleminhas porque a IDE sempre irá encontrar (incorretamente) uma chave no texto, mesmo que tenha sido "comentada".
Uma chave aberta "{" sempre deve ser seguida de uma chave fechada "}". Esta é uma condição que é comumente mencionada para que as chaves sejam balanceadas. A IDE (Integrated Development Environment) do Arduino inclui um recurso conveniente para verificar o balanço das chaves. Selecione uma chave ou clique no ponto de inserção imediatamente após uma delas e sua companheira lógica será destacada.
No momento, este recurso está com alguns probleminhas porque a IDE sempre irá encontrar (incorretamente) uma chave no texto, mesmo que tenha sido "comentada".
Referência: ; (ponto e virgula)
Usado para finalizar declarações de variáveis, loops ou chamadas a funções.
Exemplo:
int a = 13;
Esquecer o término de uma linha com um ponto-e-vírgula irá resultar em um erro do compilador. O texto do erro pode ser óbvio e se referir ao ponto-e-vírgula esquecido.
Se um erro de compilação impossível de entender ou ilógicamente visto for detectado, uma das primeiras ações a tomar é verificar a falta do ponto-e-vírgula nas imediações, antecedendo a linha que o compilador reclamou.
Exemplo:
int a = 13;
Esquecer o término de uma linha com um ponto-e-vírgula irá resultar em um erro do compilador. O texto do erro pode ser óbvio e se referir ao ponto-e-vírgula esquecido.
Se um erro de compilação impossível de entender ou ilógicamente visto for detectado, uma das primeiras ações a tomar é verificar a falta do ponto-e-vírgula nas imediações, antecedendo a linha que o compilador reclamou.
Referência: goto
Transfere o fluxo do programa para um outro ponto etiquetado
Sintaxe:
label:
//código ou não
goto label; // envia o fluxo do programa para label:
O uso do goto é desencorajado em programação C e inclusive alguns autores afirmam que o goto nunca é realmente necessário, mas usado com cautela pode simplificar alguns programas. A razão pela qual muitos programadores desaprovam seu uso é que com o uso indiscriminado é fácil de se criar um programa com um fluxo indefinido e muito difícil de ser depurado.
Sintaxe:
label:
//código ou não
goto label; // envia o fluxo do programa para label:
O uso do goto é desencorajado em programação C e inclusive alguns autores afirmam que o goto nunca é realmente necessário, mas usado com cautela pode simplificar alguns programas. A razão pela qual muitos programadores desaprovam seu uso é que com o uso indiscriminado é fácil de se criar um programa com um fluxo indefinido e muito difícil de ser depurado.
Referência: return
Finaliza uma função e retorna um valor, se necessário.
Sintaxe:
return;
return valor; // ambas formas são válidas
Parâmetros:
valor: alguma variável ou constante
Exemplo:
Uma função para comparar o valor de um sensor com um limite
int checkSensor(){
if (analogRead(0) > 400) {
return 1;
else{
return 0;
}
}
Sintaxe:
return;
return valor; // ambas formas são válidas
Parâmetros:
valor: alguma variável ou constante
Exemplo:
Uma função para comparar o valor de um sensor com um limite
int checkSensor(){
if (analogRead(0) > 400) {
return 1;
else{
return 0;
}
}
Assinar:
Postagens (Atom)