Dias 19 e 22 de Fevereiro de 2013 (1º Semana)
Aprendemos conceitos básicos sobre o Arduino e como usar sua IDE. Aprendemos também a usar a fórmula para cálculo do resistor apropriado para um circuito. Além disso, também testamos e praticamos a solda.
Alguns tiveram dificuldades em desencapar fios e arranjar corretamente os componentes em uma protoboard. Já estamos melhorando neste aspecto.
Dias 25 de fevereiro e 01 de Março de 2013 (2ª Semana)
Nesta semana, fizemos dois drivers, um de trasístor e um de relé, e aprendemos a diferença entre trasistores PNP e NPN. Tivemos certa dificuldade na montagem de drivers usando estes, pois confundimos a ordem dos componentes.
Começamos a estudar ponte H e fizemos um projeto usando Switch Case (). Na primeira fase, conseguimos acender os leds utilizando estados. Já na segunda, onde tínhamos que adaptar o código para controlar os leds com um botão, não conseguimos terminar devido à falta de tempo. Portanto, iremos continuar e descobrir onde erramos na próxima aula.
Em relação ao Switch Case (), tivemos que escrever um código que passasse de estado a cada clique de um botão. Nós apelidamos este código carinhosamente de "Jeremias":
#define GRNon 0 //Começo definindo as variaveis
#define BOTHon 1
#define REDon 2
#define button 2;
#define RED 7;
#define GRN 8;
int Jeremias = 0; //Jeremias é o nome do Switch
int buttonnumber;
void setup() {
pinMode (7, OUTPUT);
pinMode (8, OUTPUT);
pinMode (2, INPUT);
}
void loop() {
buttonnumber = digitalRead(2); //Variável buttonnumber vira o sinal do botão
if(buttonnumber == HIGH){
Jeremias++; /*Se o botão for pressionado, aumentar Jeremias por 1, passando um caso no Switch*/
}
if(Jeremias == 4){
Jeremias = 0;
}
switch(Jeremias){
case GRNon:
digitalWrite(8, HIGH);
delay(1000);
break;
case BOTHon:
digitalWrite(8, HIGH);
digitalWrite(7, HIGH);
delay(1000);
break;
case REDon:
digitalWrite(8, LOW);
digitalWrite(7, HIGH);
delay(1000);
break;
default:
digitalWrite(8, LOW);
digitalWrite(7, LOW);
delay(1000);
break;
}
}
Depois de criar o Jeremias, fomos propostos a criação de um Jeremias 1.5, com mudança de estados movida a sombra! Acompanhe a transformação:
#define GRNon 0 //Novamente definindo as variáveis
#define BOTHon 1
#define REDon 2
#define RED 7;
#define GRN 8;
int Jeremias = 0;
int leitura;
int ldrPin = A0;
void setup() {
pinMode (7, OUTPUT);
pinMode (8, OUTPUT);
pinMode (ldrPin, INPUT);
Serial.begin(9600);
}
void loop() {
leitura = analogRead(ldrPin); /*Váriavel leitura é igual à leitura da luminosidade do LDR*/
Serial.println(leitura);
if(leitura <= 500){
Jeremias++; /*Se leitura for menor que ou igual a 500 (uma sombra), aumentar um caso em Jeremias*/
}
if(Jeremias == 4){
Jeremias = 0;
}
switch(Jeremias){
case GRNon:
digitalWrite(8, HIGH);
delay(1000);
break;
case BOTHon:
digitalWrite(8, HIGH);
digitalWrite(7, HIGH);
delay(1000);
break;
case REDon:
digitalWrite(8, LOW);
digitalWrite(7, HIGH);
delay(1000);
break;
default:
digitalWrite(8, LOW);
digitalWrite(7, LOW);
delay(1000);
break;
}
}
Depois disso, fomos propostos à criação de um Jeremias 2.0! Novinho em folha, com tecnologia de fading dependendo da luminosidade atual!. Conseguimos criar, mas o código não está acessível no momento.
Dias 05 e 08 de Março de 2013 (3ª Semana)
Descobrimos uma solução para o problema com o projeto usando o Switch Case () e um botão. Na verdade, o problema estava no circuito; não no código.
Jeremias está cada vez mais atualizado, com mudanças de estados por um sensor LDR (que foi um dos assuntos que trabalhamos essa semana).
Também fizemos uma ponte H de relé. Um dos motivos de escolhermos fazer com relé e não com transístor é que no transístor há a possibilidade de ocorrer um curto - se você não usar diodos para uma melhor segurança no seu circuito.
Tivemos certos problemas para criarmos um código usando sensores LDR e nos enrolamos na montagem da ponte H usando relé.
O negócio funcionando
Dias 12 e 15 de Março de 2013 (4ª Semana)
Nesta semana aprendemos a hackear um servomotor, conseguimos fazer, mas tivemos problema com o encaixe das engrenagens.
Começamos a organizar o nosso projeto de robô, pensando no que iríamos precisar e fazendo um protótipo de papel, além de definir os prazos. Se você quer ter mais informações sobre nosso Robô Atirador de Discos, acesse o conteúdo relacionado.
Ou