Skocz do zawartości

Kurs Arduino - #4 - Przetwornik ADC


Pomocna odpowiedź

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Problem już w sumie rozwiązałem. Po prostu baterie były podłączone do czujnika a jego kabel wyjściowy w porcie A5.

Teraz wszystko w arduino jest podłączone. Czy można podłączyć do arduino dodatkowe zasilanie czy 5V to max? Się zastanawiam czy można zasilić oprócz czujnika jakieś diody czy będę musiał używać tranzystorów do tego.

Link do komentarza
Share on other sites

Problem już w sumie rozwiązałem. Po prostu baterie były podłączone do czujnika a jego kabel wyjściowy w porcie A5.

Czyli nie zrobiłeś tego, co czym pisałem - nie połączyłeś mas obud układów, tak?

Czy można podłączyć do arduino dodatkowe zasilanie czy 5V to max? Się zastanawiam czy można zasilić oprócz czujnika jakieś diody czy będę musiał używać tranzystorów do tego.

Co to znaczy dodatkowe zasilanie? Możesz układ zasilać tak jak jest to opisane w części o serwomechanizmach.

  • Lubię! 1
Link do komentarza
Share on other sites

Dokładnie ale teraz zrobiłem to jak na tym schemacie i podłączyłem zasilanie z płytki.

I dzięki tak o to mi chodziło.

__________

Komentarz dodany przez: Treker

Obraz poprawiłem - Treker, za brak reakcji na na uwagę: ostrzeżenie o wartości 1.

Link do komentarza
Share on other sites

Treker,

Gratuluję, super kurs 🙂 Jednak natknąłem się na trudność. Do dziś właściwie wszystko było spoko dopóki nie zacząłem robić zadania 4.5 (gry)

Analizuję kod igor, ale coś nie mogę rozgryźć tego boolean , a dokładniej od_nowa=true , po drugim if.

Czy mógłbym prosić o pomoc i ewentualne wyjaśnienie co i jak z tymi zmiennymi prawda/fałsz? Bo wcześniej tego w kursie nie było i ciężko mi się samemu zabrać za to zadanie.

Nawet nie wiedziałem jak zmienić String na int 🙁 A to było tutaj bardzo ważne

Jeżeli jest ktoś, kto mógłby pomóc to bardzo proszę 🙂

Po wytłumaczeniu jakieś łatwe zadanko na sprawdzenie czy rozumiem mile widziane

Link do komentarza
Share on other sites

MrShadow, zmienne boolean są takie same jak zwykłe. Tylko zamiast wartość np.: z zakresu 0-255 przyjmują prawdę/fałsz (1 lub 0). Jeśli nie czujesz zmiennych boolean, to możesz używać int'ów i zapisywać w nich tylko dwie wartości 1-prawda lub 0-fałsz. Będzie to mniej oszczędne pod względem miejsca, ale działanie będzie takie samo.

Z czasem bez problemu przejdziesz na boolean 😉

  • Lubię! 1
Link do komentarza
Share on other sites

Witam .

Chciałem sobie utrudnić życie .... i udało się😃

Czy mógłby ktoś sprawdzić mój program i napisać co jest nie tak ?

//definicja diod
#define zielona 5
#define czerwona 3
#define zlota 4
// definicja przycisku
#define klik 2
//definicje zmiennych
int odczyt;
int wpisana2;



int licznik = 0;


void setup() {
 // ustawienie pinów
pinMode(zielona,OUTPUT);
pinMode(czerwona ,OUTPUT);
pinMode(zlota,OUTPUT);
pinMode( klik,INPUT_PULLUP);
// uruchomienie transmisji szeregowej
Serial.begin(9600);

// wiadomosc początkowa 
Serial.println("<<<<<Ustaw Potencjometr>>>>>>");
Serial.println("<<<<<Wcisnij klawisz>>>>>");


}

void loop() {

   efekt_led();//funkcja startowa ledy

 if(digitalRead(klik)==LOW)//rozpoczynamy gre
 {
  delay (20);
 }

  if(digitalRead(klik)==LOW)
  {

    Serial.println("<<<<Gra rozpoczeta>>>>>");
    delay(100);
    Serial.println ("<<<< Masz 3 szanse aby zgadnac liczbe >>>>");
    delay(100);
    Serial.println("<<<< Mozesz pomylic sie o 50% >>>>");
    delay(30);
   // Serial.println(przeliczanie()); //test


    while(licznik<3) // dopuki masz 3 życia 
    {
   przeliczanie();// funkcja przeliczenia z adc
  delay(50);
      odbieranie();

      if (przeliczanie() <= 50 && odbieranie()>= -50)  // jeśli podana liczba jest +-50 równa odczytowi
       {
        Serial.println("<<<<Gratulacje>>>>");
        delay(700);
        Serial.println("----Wygrales----");
        digitalWrite(zielona,HIGH);
        digitalWrite(czerwona,LOW);
        digitalWrite(zlota,LOW);
      licznik = 0;
      }
      else// jesli nie
      {
        Serial.println("----Dawaj jeszcze Raz----");
        digitalWrite(zlota,HIGH);
        digitalWrite(czerwona,LOW);
        digitalWrite(zielona ,LOW);
        licznik = licznik +1;

      }


    }

    Serial.println("<<<<przegrales>>>>");
    digitalWrite(czerwona, HIGH);
    digitalWrite(zlota,LOW);
    digitalWrite(zielona,LOW);


 }


}

void efekt_led(void) // funkcja efektów led
{
 while(digitalRead(klik)==LOW);
 {
   int a = 3;
   int b = 100;
   for ( a=0; a<6; a++)
   { 
     digitalWrite(a ,HIGH);
     delay(b - a);
     digitalWrite(a,LOW);
     delay(b +a);

   }

 }
}

int przeliczanie(void)//funkcja przeliczająca 
{

 odczyt = analogRead(A5);

  return odczyt;
}



 int odbieranie(void)// funkcja odbioru z UART
 {
String wpisana;

   Serial.flush();


while(!Serial.available()); 
{// czekaj na dane z portu szeregowego

     }
     if(Serial.available() > 0)
  {
    wpisana = Serial.readStringUntil('\n');

   int(wpisana) = wpisana2;// zmiana typu z String na int

  }

  delay(5);
  return wpisana2; //wykonaj, jeśli dostępne dane
 }
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.