quinta-feira, 17 de outubro de 2019

XVIII - ENCONTRO: Semáforo e Irrigador (parte 2)

XVIII - ENCONTRO: Semáforo e Irrigador (parte 2)

Olá turma, neste encontro do dia 04/10/2019, continuamos com nossos dois projetos implementando novas funcionalidades.
No semáforo colocamos um potenciômetro para regular o tempo de mudança para cada cor.
No Irrigador realizamos pesquisa para  ver modelos em funcionamento e implementar códigos
Paralelo a este dois projetos parte da turma trabalhou no aperfeiçoamento da régua, montagem do dado e labirinto de fio.
Nossas atividade
Eletrônica:
Semáforo
Montagem virtual no tinkercad
Montagem e conexão do semáforo através do kit Atto
Realizados testes do controle de leds.


Irrigador:
Montagem eletrônica no simulador do tinkercad, a partir de modelo pesquisado na internet.
Dado eletrônico:
Montagem física com componentes eletrônicos e sucata.

Programação:
Semáforo:
Revisto o comando analogRead.
Inclusão de código para ler  valores no potenciômetro através da função map.


//portas para os leds

int ledVermelho=13;
int ledAmarelo=12;
int ledVerde=11;
int pinoPOT = A0; //PINO ANALÓGICO usado pelo Potenciômetro
int leituraA0; //VARIÁVEL QUE ARMAZENA O valor lido na porta analogica 

int tmp; // valor para o tempo de mudança dos leds

void setup ()
{
  pinMode(ledVerde,OUTPUT);//define pinos como saida
  pinMode(ledVermelho,OUTPUT);
  pinMode(ledAmarelo,OUTPUT);

}

void loop()
{

 leituraA0= analogRead(pinoPOT);//analogRead(pinPOT);
 tmp= map(leituraA0, 0, 1023, 1000, 6000); //EXECUTA A FUNÇÃO "map" DE ACORDO COM OS PARÂMETROS PASSADOS   
mudar(tmp);
  
}


void mudar(int v){
  digitalWrite(ledVermelho, HIGH); // sets the digital pin 13 on
  delay(v);            // waits for a second
  digitalWrite(ledVermelho, LOW);  // sets the digital pin 13 off
  digitalWrite(ledAmarelo, HIGH);
  delay(v/2); 
  digitalWrite(ledAmarelo, LOW);  // sets the digital pin 13 off
  digitalWrite(ledVerde, HIGH);
  delay(v);
  digitalWrite(ledVerde, LOW);  // sets the digital pin 13 off
  

}
Irrigador:
Implementação de código a partir de modelo obtido na internet.
labirinto de fio:
Pesquisa na internet sobre como tocar  músicas no buzzer com arduino.



Abraço a todos

XVII - ENCONTRO: Semáforo e Irrigação automática

XVII - ENCONTRO: Semáforo e Irrigação automática

Olá turma, neste encontro do dia 27/10/2019 iniciamos 2 projetos: 
Para a turma que entrou este ano ficou a responsabilidade pela montagem de um semáforo com controle de tempo através de um potenciômetro.
Já os participantes mais antigos ficaram responsáveis por pesquisar  e planejar um sistema de irrigação com arduino.
Os grupos intermediários fizeram modificações nos projetos anteriores para melhorar os desempenhos dos programas: dado e labirinto .
Nossas atividades:
Eletrônica
Semáforo
Montagem virtual no tinkercad com a seguinte conexão:
led                  pino arduino
vermelho        13
amarelo          12
verde              11


Irrigador:
Pesquisas na internet

Dado eletrônico:
Montagem física com componentes eletrônicos e sucata

Programação:
Semáforo
Desenvolvido códigos a partir deste modelo


//portas para os leds

int ledVermelho=13;
int ledAmarelo=12;
int ledVerde=11;


void setup ()
{
  pinMode(ledVerde,OUTPUT);//define pinos como saida
  pinMode(ledVermelho,OUTPUT);
  pinMode(ledAmarelo,OUTPUT);

}

void loop()
{


mudar(4000); //muda de cor a 4 segundos
  
}


void mudar(int v){
  digitalWrite(ledVermelho, HIGH); // sets the digital pin 13 on
  delay(v);            // waits for a second
  digitalWrite(ledVermelho, LOW);  // sets the digital pin 13 off
  digitalWrite(ledAmarelo, HIGH);
  delay(v/2); 
  digitalWrite(ledAmarelo, LOW);  // sets the digital pin 13 off
  digitalWrite(ledVerde, HIGH);
  delay(v);
  digitalWrite(ledVerde, LOW);  // sets the digital pin 13 off
  

}
Irrigador:
Pesquisas  na internet.
labirinto de fio:
Pesquisa na internet sobre como tocar  músicas no buzzer com arduino.


Abraço a todos

quarta-feira, 16 de outubro de 2019

XVI - ENCONTRO: Medidor de distância (parte 2)

XVI - ENCONTRO:  MEDIDOR DE DISTÂNCIA  (parte 2)


Olá pessoal, neste encontro do dia 20/09/2019, Continuamos nosso projeto de "régua" com sensor ultrassônico, com o objetivo de indicar a medida aproximada até a distancia de  1 metro.

Nossa atividade
Eletrônica:
Montagem no tinkercad  adicionando um sensor de distância  ultrassônico



Programação:
Criamos uma função para medir distância
Revimos a função map()
Desenvolvemos o seguinte código:
const byte trigger_Pin = 3;  //Initialize I/O pins
const byte echo_Pin = 2;

unsigned long duration;  //Since PulseIn return an unsigned Long 
unsigned int distance;  //To save the distance


//configura leds
int led10=13;
int led20=12;
int led30=11;
int led40=10;
int led50=9;
int led60=8;
int led70=7;
int led80=6;
int led90=5;
int led100=4;

int d=100; //medição antiga

void setup()
{
  pinMode(led10, OUTPUT);
  pinMode(led20, OUTPUT);
  pinMode(led30, OUTPUT);
  pinMode(led40, OUTPUT);
  
  pinMode(led50, OUTPUT);
  pinMode(led60, OUTPUT);
  pinMode(led70, OUTPUT);
  pinMode(led80, OUTPUT);
  pinMode(led90, OUTPUT);
  pinMode(led100, OUTPUT);
  Serial.begin(9600);
  pinMode(echo_Pin, INPUT);      //Echo pin as Input
  pinMode(trigger_Pin, OUTPUT);   //Trigger pin as Output
  
}

void loop()
{

  medir();
  if(distance<d) apagarAll();

  acender(distance);
  d=distance; 
}

void acender(int valor)
{
  if(valor>=10) digitalWrite(led10,HIGH); 
  if(valor>=20) digitalWrite(led20,HIGH);
  if(valor>=30) digitalWrite(led30,HIGH); 
  if(valor>=40) digitalWrite(led40,HIGH);
  if(valor>=50) digitalWrite(led50,HIGH); 
  if(valor>=60) digitalWrite(led60,HIGH);
  if(valor>=70) digitalWrite(led70,HIGH); 
  if(valor>=80) digitalWrite(led80,HIGH);
  if(valor>=90) digitalWrite(led90,HIGH); 
  if(valor>=100) digitalWrite(led100,HIGH);
  
  
}
void apagarAll(){
  digitalWrite(led10,LOW); 
  digitalWrite(led20,LOW); 
  digitalWrite(led30,LOW); 
  digitalWrite(led40,LOW); 
  digitalWrite(led50,LOW); 
  digitalWrite(led60,LOW); 
  digitalWrite(led70,LOW); 
  digitalWrite(led80,LOW);
  digitalWrite(led90,LOW);
  digitalWrite(led10,LOW); 
}

//fumção medir distancia com hc sr04

void medir() {
  digitalWrite(trigger_Pin, LOW); //Make Trigger pin Low at start
  delay(1);
  digitalWrite(trigger_Pin, HIGH);
  delayMicroseconds(10);  //Make Trigger pin High for 10 uS to start sending the pulse
  digitalWrite(trigger_Pin, LOW);

  duration = pulseIn(echo_Pin, HIGH);  //Save the time it took ultrasonic wave to come back
  distance = duration * 0.017; //((340*100)/10e6)/2
/* Speed of the sound in Air = 340 m/S
 * multiply it by 100 to get the data in cm
 * divide by 1,000,000 as duration is measured in microseconds
 * divide by 2 as ultrasound signal travels to object and comes back
 */
  Serial.print("Distacia do sensor (cm) : ");
  Serial.println(distance);
  delay(100);
}


Abraço a todos

quinta-feira, 3 de outubro de 2019

XV - ENCONTRO: Régua com Sensor Ultrassônico (parte 1)

XV - ENCONTRO: Régua com Sensor Ultrassônico

Olá pessoal, neste encontro do dia 13/09/2019, Demos início a um novo projeto: uma "régua" com sensor ultrassônico, com o objetivo de indicar a medida aproximada até a distancia de  1 metro.
Inicialmente começamos com um indicador de 10 leds medindo de 10cm em 10 cm.

Nossa atividade
Eletrônica:
Montagem no tinkercad com leds, resistores e arduino com a seguinte configuração:
pino  led     valor (cm)
13      1        10
12      2        20
11      3        30
10      4        40
9        5        50
8        6        60
7        7        70
6        8        80
5        9        90
4       10       100