Jump to content
ELFORUM - Forumul electronistilor

Arduino uno cu senzorii MQ-4 și HC-SR04


mihai 7
 Share

Recommended Posts

Bună ziua! De câteva zile am comandat o placă Arduino Uno și câțiva senzori, și încerc să aflu mai multe despre programarea unei astfel de plăci. Menționez că am studiat programare în liceu, însă nu am studiat C/C++ ( doar Pascal, Delphi, Fox). Am realizat o "încercare" folosind senzorii MQ-4, detector de gaz, și HC-SR04 (senzor ultrasonic de distanta). Eu doresc să obțin următorul rezultat(în scop didactic): atunci când unul sau amândoi senzorii detectează stimuli (prezența gazului, respectiv un obiect aflat la mai puțin de 5 cm), să afișeze pe un lcd 16*2 pe primul rând, reapectiv pe al doilea, "0" sau "1", în funcție de starea senzorului, precum și să activeze o avertizare sonoră atunci când cel puțin unul din senzori nu detectează stimuli. Acest lucru l-am realizat prin următoarea secvență de cod:

 

 

/* MQ-4 Methane Sensor module and HC-SR04 distance sensor with Arduino */
//afisaza cate un un mesaj in functie de activarea celor doi senzori//

#include <LiquidCrystal.h> //afiseaza mesajele pe un lcd 16*2//

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

const int trigPin=8;
const int echoPin=9;
int triggerDistance = 5;
long durata;
int distanta;

const int AO_Pin=0; // Connect AO of MQ4 with Analog channel 0 pin (A0) of Arduino
const int DO_Pin=7; // Connect DO of MQ4 with Digital pin 8 (D8) of Arduino
const int difuzor_Pin=6; // Connect an speaker with D6 pin of Arduino
int threshold_value; // A variable to store digital output of MQ4
int AO_Out; // stores analog output of MQ4 sensor

void setup() {
  lcd.begin(16, 2);
  pinMode(DO_Pin, INPUT); // Configure D7 pin as a digital input pin
  pinMode(difuzor_Pin, OUTPUT); //Configure D2 pin as a digital output pin
    
  pinMode (trigPin, OUTPUT);
  pinMode (echoPin, INPUT);
  
  lcd.print("Bine ati venit");
  delay(5000);
  lcd.clear();
  }
void loop()
{
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  durata = pulseIn(echoPin, HIGH);
  distanta = durata*0.034/2;   
  threshold_value= digitalRead(DO_Pin); //Read digital output of MQ4 sensor
  AO_Out= analogRead(AO_Pin); // Take Analog output measurement sample from AO pin of MQ4 sensor
  threshold_value= digitalRead(DO_Pin); //Read digital output of MQ4 sensor
  lcd.clear();
  
   if ((threshold_value== HIGH)&&(distanta>5))
{  
tone(6,1000);
lcd.setCursor(8,0);
lcd.print("0");
lcd.setCursor(8,1);
lcd.print("0");

}
else
   if ((threshold_value== LOW)&&(distanta<=5))
{   
noTone(6);
lcd.setCursor(8,0);
lcd.print("1");
lcd.setCursor(8,1);
lcd.print("1");

}
else
  if ((threshold_value== HIGH)&&(distanta<=5))
{    
tone(6,1000);  
lcd.setCursor(8,0);
lcd.print("0");
lcd.setCursor(8,1);
lcd.print("1");
}
else
{  
tone(6,1000);
lcd.setCursor(8,0);
lcd.print("1");
lcd.setCursor(8,1);
lcd.print("0");
}
delay(1000);
}

 

Însă doresc să îmbunătățesc programul astfel încât atunci când detectează un stimul, senzorii să-l sesizeze într-un timp cât mai scurt (1 secundă), însă atunci când stimulul dispare pentru un timp predefinit, programul să amâne pentru un număr predefinit de secunde (mai mare de 1 secundă) afișarea unui "0", respectiv activarea tonului din difuzor (respectiv să stea în așteptarea stimulului câteva secunde înainte de a se sesiza că acesta a dispărut).

Menționez că am încercat să folosesc funcția delay(), inserând-o în diferite puncte ale codului, dar am obținut doar o temporizare în sensul că dacă programul întârzie afișarea unui "0" (lipsă stimul), el va întârzia și detectarea stimulului cu același interval de timp.  

Cu speranța ca m-am făcu înțeles în ceea ce doresc, vă mulțumesc încă de la început pentru răspunsuri.


 
    

Link to comment
Share on other sites

Bună ziua! Functia millis() este folosită pentru temporizare, după câte am înțeles eu. Mie îmi trebuie afisată schimbarea stării unuia sau ambilor senzori, iar acum programul trebuie sa păstreze pentru un timp predeterminat=t valoarea ultim afișată. Ideal ar fi ca , dacă starea unui senzor se schimbă, timpul predeterminat=t să se reinițializeze. În această ultimă parte ar pute fi utilă funcția millis(), dar nu cum realizez prima parte a cerinței (afisată schimbarea stării unuia sau ambilor senzori, iar acum programul trebuie sa păstreze pentru un timp predeterminat=t valoarea ultim afișată)?

Link to comment
Share on other sites

/* MQ-4 Methane Sensor module and HC-SR04 distance sensor with Arduino */
//afisaza cate un un mesaj in functie de activarea celor doi senzori//

#include <LiquidCrystal.h> //afiseaza mesajele pe un lcd 16*2//

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

const int trigPin=8;
const int echoPin=9;
int triggerDistance = 5;
long durata;
int distanta;

const int AO_Pin=0; // Connect AO of MQ4 with Analog channel 0 pin (A0) of Arduino
const int DO_Pin=7; // Connect DO of MQ4 with Digital pin 8 (D8) of Arduino
const int difuzor_Pin=6; // Connect an speaker with D6 pin of Arduino
int threshold_value; // A variable to store digital output of MQ4
int AO_Out; // stores analog output of MQ4 sensor

static uint32_t oldtime; // variabla globala pentru program 
const unsigned long intarziere_afisare = 3000; // durata intarzierii

void setup() {
  lcd.begin(16, 2);
  pinMode(DO_Pin, INPUT); // Configure D7 pin as a digital input pin
  pinMode(difuzor_Pin, OUTPUT); //Configure D2 pin as a digital output pin
    
  pinMode (trigPin, OUTPUT);
  pinMode (echoPin, INPUT);
  
  lcd.print("Bine ati venit");
  delay(5000);
  lcd.clear();
  oldtime=millis();
             }
void loop() {
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  durata = pulseIn(echoPin, HIGH);
  distanta = durata*0.034/2;   
  threshold_value= digitalRead(DO_Pin); //Read digital output of MQ4 sensor
  AO_Out= analogRead(AO_Pin); // Take Analog output measurement sample from AO pin of MQ4 sensor
  threshold_value= digitalRead(DO_Pin); //Read digital output of MQ4 sensor
  //lcd.clear();
    if ((threshold_value== HIGH)&&(distanta>5))
      {    
      if  ( (millis()-oldtime) > intarziere_afisare)    
           {
            tone(6,1000);
            lcd.setCursor(8,0);
            lcd.print("0");
            lcd.setCursor(8,1);
            lcd.print("0");
            oldtime = millis();
           }
      }
   else{
         noTone(6);
        lcd.setCursor(8,0);
        lcd.print("1");
        lcd.setCursor(8,1);
        lcd.print("1");
        oldtime=millis();
       }                
}

Ai un exemplu aici, n-am folosit toate if-urile din programul tau, senzorul de gaz este in stare high permanent(intrare conectata la +5V), functioneaza doar senzorul de distanta.Cand distanta este peste 5 cm, afisajul pastreaza datele un timp egal cu constanta intarziere_afisare( 3 secunde).Daca distanta scade sub 5 cm, acest lucru este detectat instantaneu.Pentru stabilirea distantei in simulator trebuie facut un click pe senzorul HC-SR04.

Edited by Elison
Link to comment
Share on other sites

Mă tem că nu-i dau de cap. Am completat programul în modul arătat mai jos, dar nu functionează corespunzător:

/* MQ-4 Methane Sensor module and HC-SR04 distance sensor with Arduino */
//afisaza cate un un mesaj in functie de activarea celor doi senzori//

#include <LiquidCrystal.h> //afiseaza mesajele pe un lcd 16*2//

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

const int trigPin=8;
const int echoPin=9;
int triggerDistance = 5;
long durata;
int distanta;

const int AO_Pin=0; // Connect AO of MQ4 with Analog channel 0 pin (A0) of Arduino
const int DO_Pin=7; // Connect DO of MQ4 with Digital pin 8 (D8) of Arduino
const int difuzor_Pin=6; // Connect an speaker with D6 pin of Arduino
int threshold_value; // A variable to store digital output of MQ4
int AO_Out; // stores analog output of MQ4 sensor

static uint32_t oldtime; // variabla globala pentru program 
const unsigned long intarziere_afisare = 5000; // durata intarzierii

void setup() {
  lcd.begin(16, 2);
  pinMode(DO_Pin, INPUT); // Configure D7 pin as a digital input pin
  pinMode(difuzor_Pin, OUTPUT); //Configure D2 pin as a digital output pin
    
  pinMode (trigPin, OUTPUT);
  pinMode (echoPin, INPUT);
  
  lcd.print("Bine ati venit");
  delay(5000);
  lcd.clear();
  oldtime=millis();
}
void loop() {
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  durata = pulseIn(echoPin, HIGH);
  distanta = durata*0.034/2;   
  threshold_value= digitalRead(DO_Pin); //Read digital output of MQ4 sensor
  AO_Out= analogRead(AO_Pin); // Take Analog output measurement sample from AO pin of MQ4 sensor
  threshold_value= digitalRead(DO_Pin); //Read digital output of MQ4 sensor//
  lcd.clear();
    if ((threshold_value== HIGH)&&(distanta>5))
      {    
      if  ( (millis()-oldtime) > intarziere_afisare)    
           {
            tone(6,1000);
            lcd.setCursor(8,0);
            lcd.print("0");
            lcd.setCursor(8,1);
            lcd.print("0");
            oldtime = millis();
           }
      }
   else
   if ((threshold_value== LOW)&&(distanta<=5))
   {
    if  ( (millis()-oldtime) > intarziere_afisare)    
           {   
            tone(6,1000);
            lcd.setCursor(8,0);
            lcd.print("1");
            lcd.setCursor(8,1);
            lcd.print("0");
            oldtime = millis();
           }
   }
   else
   if ((threshold_value== HIGH)&&(distanta<=5))
   {
     if  ( (millis()-oldtime) > intarziere_afisare)    
           {   

         tone(6, 1000);
        lcd.setCursor(8,0);
        lcd.print("0");
        lcd.setCursor(8,1);
        lcd.print("1");
        oldtime=millis();
       }                
}
else 
if ((threshold_value== LOW)&&(distanta<=5))
   {
    if  ( (millis()-oldtime) > intarziere_afisare)    
           {   
            tone(6,1000);
            lcd.setCursor(8,0);
            lcd.print("1");
            lcd.setCursor(8,1);
            lcd.print("1");
            oldtime = millis();
           }
           
   }
   delay(1000);
}

Link to comment
Share on other sites

Pentru fiecare "if ((threshold_value ..." trebuie sa folosesti o alta variabila oldtime.
oldtime1, oldtime2 ...
pe care sa ai grija sa si o setezi/resetezi.
ex: oldtime2=millis();

Edited by Liviu.Mihaiu
Link to comment
Share on other sites

Deja nu mai înțeleg deloc codul de program... Am inserat oldtime1,....oldtime4, dar nu știu dacă le-am setat/resetat la momentul potrivit. Sunt pe puctul de a renunta la program.

 

/* MQ-4 Methane Sensor module and HC-SR04 distance sensor with Arduino */
//afisaza cate un un mesaj in functie de activarea celor doi senzori//

#include <LiquidCrystal.h> //afiseaza mesajele pe un lcd 16*2//

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

const int trigPin=8;
const int echoPin=9;
int triggerDistance = 5;
long durata;
int distanta;

const int AO_Pin=0; // Connect AO of MQ4 with Analog channel 0 pin (A0) of Arduino
const int DO_Pin=7; // Connect DO of MQ4 with Digital pin 8 (D8) of Arduino
const int difuzor_Pin=6; // Connect an speaker with D6 pin of Arduino
int threshold_value; // A variable to store digital output of MQ4
int AO_Out; // stores analog output of MQ4 sensor

static uint32_t oldtime1;  // variabla globala pentru program 
static uint32_t oldtime2;
static uint32_t oldtime3;
static uint32_t oldtime4;
const unsigned long intarziere_afisare = 5000; // durata intarzierii

void setup() {
  lcd.begin(16, 2);
  pinMode(DO_Pin, INPUT); // Configure D7 pin as a digital input pin
  pinMode(difuzor_Pin, OUTPUT); //Configure D2 pin as a digital output pin
    
  pinMode (trigPin, OUTPUT);
  pinMode (echoPin, INPUT);
  
  lcd.print("Bine ati venit");
  delay(5000);
  lcd.clear();
  oldtime1=millis();
  oldtime2=millis();
  oldtime3=millis();
  oldtime4=millis();
}
void loop() {
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  durata = pulseIn(echoPin, HIGH);
  distanta = durata*0.034/2;   
  threshold_value= digitalRead(DO_Pin); //Read digital output of MQ4 sensor
  AO_Out= analogRead(AO_Pin); // Take Analog output measurement sample from AO pin of MQ4 sensor
  threshold_value= digitalRead(DO_Pin); //Read digital output of MQ4 sensor//
  lcd.clear();
  if ((threshold_value== HIGH)&&(distanta>5))
      {    
      if  ( (millis()-oldtime1) > intarziere_afisare)    
           {
            tone(6,1000);
            lcd.setCursor(8,0);
            lcd.print("0");
            lcd.setCursor(8,1);
            lcd.print("0");
            oldtime1 = millis();
           }
      }
   else
   if ((threshold_value== LOW)&&(distanta<=5))
   {
    if  ( (millis()-oldtime2) > intarziere_afisare)    
           {   
            tone(6,1000);
            lcd.setCursor(8,0);
            lcd.print("1");
            lcd.setCursor(8,1);
            lcd.print("0");
            oldtime2 = millis();
           }
   }
   else
   if ((threshold_value== HIGH)&&(distanta<=5))
   {
     if  ( (millis()-oldtime3) > intarziere_afisare)    
           {   

         tone(6, 1000);
        lcd.setCursor(8,0);
        lcd.print("0");
        lcd.setCursor(8,1);
        lcd.print("1");
        oldtime3=millis();
       }                
}
else 
if ((threshold_value== LOW)&&(distanta<=5))
   {
    if  ( (millis()-oldtime4) > intarziere_afisare)    
           {   
            noTone(6);
            lcd.setCursor(8,0);
            lcd.print("1");
            lcd.setCursor(8,1);
            lcd.print("1");
            oldtime4 = millis();
           }
      delay(1000);     
   }
}

Link to comment
Share on other sites

Din ceea ce ai scris, am inteles ca in momentul in care dispare un stimul, vrei ca afisarea sa se pastreze pentru un timp stabilit si sa nu se emita un ton de avertizare.
Sunt doua cazuri cand unul din stimuli dispare: cazul in care distanta este mai mare de 5cm si cazul in care senzorul de gaz trece in starea LOW.
Logica expusa de tine nu tine cont de aspectele de mai sus, de aceea nu functioneaza asa cum doresti.In cazul de fata, nu este bine sa folosesti in bucla comanda lcd.clear() pentru ca la fiecare ciclu o sa stearga in mod neconditionat ceea ce este afisat pe display. Nici instructiunea delay(1000), nu are sens.
Codul care face acest lucru este urmatorul:

/* MQ-4 Methane Sensor module and HC-SR04 distance sensor with Arduino */
//afisaza cate un un mesaj in functie de activarea celor doi senzori//

#include <LiquidCrystal.h> //afiseaza mesajele pe un lcd 16*2//

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

const int trigPin=8;
const int echoPin=9;
int triggerDistance = 5;
long durata;
int distanta;

const int AO_Pin=0; // Connect AO of MQ4 with Analog channel 0 pin (A0) of Arduino
const int DO_Pin=7; // Connect DO of MQ4 with Digital pin 8 (D8) of Arduino
const int difuzor_Pin=6; // Connect an speaker with D6 pin of Arduino
int threshold_value; // A variable to store digital output of MQ4
int AO_Out; // stores analog output of MQ4 sensor

static uint32_t oldtime; // variabla globala pentru program 
const unsigned long intarziere_afisare = 5000; // durata intarzierii

void setup() {
  lcd.begin(16, 2);
  pinMode(DO_Pin, INPUT); // Configure D7 pin as a digital input pin
  pinMode(difuzor_Pin, OUTPUT); //Configure D2 pin as a digital output pin
    
  pinMode (trigPin, OUTPUT);
  pinMode (echoPin, INPUT);
  
  lcd.print("Bine ati venit");
  delay(500);
  lcd.clear();
  oldtime=millis();
}
void loop() {
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  durata = pulseIn(echoPin, HIGH);
  distanta = durata*0.034/2;   
  threshold_value= digitalRead(DO_Pin); //Read digital output of MQ4 sensor
  AO_Out= analogRead(AO_Pin); // Take Analog output measurement sample from AO pin of MQ4 sensor
  threshold_value= digitalRead(DO_Pin); //Read digital output of MQ4 sensor//
 // lcd.clear();
    if ((threshold_value== HIGH)&&(distanta>5))// dispare obiectul plasat la o distanta mai mica de 5cm
      {    
      if  ( (millis()-oldtime) > intarziere_afisare) // intarziem afisarea noilor conditii si emiterea tonului de avertizare
           {
            tone(6,1000);
            lcd.setCursor(8,1);//gaz
            lcd.print("1");
            lcd.setCursor(8,1);//distanta
            lcd.print("0");
            oldtime = millis();
           }
      }
   else
   if ((threshold_value== HIGH)&&(distanta<=5))//reapare obiectul plasat la o distanta mai mica de 5cm
   {
            noTone(6);
            lcd.setCursor(8,0);
            lcd.print("1");
            lcd.setCursor(8,1);
            lcd.print("1");
            oldtime = millis();
          
   }
   else
   if ((threshold_value== LOW)&&(distanta<=5))//senzorul nu mai detecteaza gazul
   {
     if  ( (millis()-oldtime) > intarziere_afisare)// intarziem afisarea noilor conditii si emiterea tonului de avertizare
      {    
        tone(6,1000);
        lcd.setCursor(8,0);
        lcd.print("0");
        lcd.setCursor(8,1);
        lcd.print("1");
        oldtime=millis();
      }                  
}
else 
if ((threshold_value== HIGH)&&(distanta<=5)) // senzorul detecteaza gazul
   {
       
            noTone(6);
            lcd.setCursor(8,0);
            lcd.print("1");
            lcd.setCursor(8,1);
            lcd.print("1");
            oldtime = millis();
          
           
   }
   
}

 

Link to comment
Share on other sites

Eu am încercat cu instructiunea while, și rezultatul pare mai aproapre de adevăr (la rularea codului de mai jos, dacă distanta<5, se face o pauza de 5 secunde, se afisează 0 și 1, iar dacă distanta >5, se face iar o pauză de 5 secunde și se afiseaza 0 și 0). Însă în loc de  while ((distanta>5)); delay(5000); aș dori să scriu ceva de cenul:

while ((threshold_value==HIGH)&&(distanta>5)||(threshold_value==HIGH)||(distanta>5))

delay(5000); dar nu cred că este corectă.

 

 

/* MQ-4 Methane Sensor module and HC-SR04 distance sensor with Arduino */
//afisaza cate un un mesaj in functie de activarea celor doi senzori//

#include <LiquidCrystal.h> //afiseaza mesajele pe un lcd 16*2//

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
const int trigPin=8;
const int echoPin=9;
int triggerDistance = 5;
long durata;
int distanta;

const int AO_Pin=0; // Connect AO of MQ4 with Analog channel 0 pin (A0) of Arduino
const int DO_Pin=7; // Connect DO of MQ4 with Digital pin 8 (D8) of Arduino
const int difuzor_Pin=6; // Connect an speaker with D6 pin of Arduino
int threshold_value; // A variable to store digital output of MQ4
int AO_Out; // stores analog output of MQ4 sensor

void setup() {
  lcd.begin(16, 2);
  pinMode(DO_Pin, INPUT); // Configure D7 pin as a digital input pin
  pinMode(difuzor_Pin, OUTPUT); //Configure D2 pin as a digital output pin
    
  pinMode (trigPin, OUTPUT);
  pinMode (echoPin, INPUT);
  
  lcd.print("Bine ati venit");
  delay(5000);
  lcd.clear();
  }
void loop()
{
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  durata = pulseIn(echoPin, HIGH);
  distanta = durata*0.034/2;   
  threshold_value= digitalRead(DO_Pin); //Read digital output of MQ4 sensor
  AO_Out= analogRead(AO_Pin); // Take Analog output measurement sample from AO pin of MQ4 sensor
  threshold_value= digitalRead(DO_Pin); //Read digital output of MQ4 sensor
   lcd.clear();
 if ((threshold_value== HIGH)&&(distanta>5))
{  
tone(6,1000);
lcd.setCursor(8,0);
lcd.print("0");
lcd.setCursor(8,1);
lcd.print("0");
while ((distanta<=5));
delay(5000);
}
  else
 if ((threshold_value==HIGH)&&(distanta<=5))
{        
noTone(6);
lcd.setCursor(8,0);
lcd.print("0");
lcd.setCursor(8,1);
lcd.print("1");
while ((distanta>5));
delay(5000);
}
delay(1000);
}
 Moderator: @mihai 7Formateaza codul folosind "<>" in editor. Este obositor sa urmaresti asa ceva si este si contrar politicii forumului.  

Link to comment
Share on other sites

Ultimul cod postat, face exact ce trebuie cand dispare un "stimul", daca distanta este mai mare sau egala cu 5 cm, se asteapta si daca se depasaste timpul de asteptare afiseaza noile stari si emite ton, daca timpul nu este depasit (distanta a devenit mai mica de 5 cm in timpul cronometrarii ) se pastraza valorile afisate si nu emite ton. La fel se intampla si in cazul cand senzorul nu mai detecteaza gazul.

 

Link to comment
Share on other sites

Acum 5 ore, mihai 7 a spus:

Eu am încercat cu instructiunea while, și rezultatul pare mai aproapre de adevăr

Asta cu while() + delay() este departe de ce se numeste programare.
"Merge si asa" dar ai spus ca vrei pentru "scop didactic".
Deci, incearca sa faci cum a zis user @Elison daca chiar vrei sa inveti ceva legat de programare.
 

Link to comment
Share on other sites

  • 2 weeks later...
Posted (edited)

În primul rând, îmi cer iertare pentru modul "obositor" în care am postat codul mai sus, după cum zice moderatorul.

Apoi, revin cu mulțumiri pentru cei care m-au sfătuit, în final am reușit să obțin ceea ce doream cu ajutorul funcției millis().

P.S. 

Ce anume trebuie să fac (cum să formatez codul) pentru a-l afișa pe forum după regulile acestuia?

Edited by mihai 7
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines