Skocz do zawartości

Kurs Arduino - #4 - Przetwornik ADC


Pomocna odpowiedź

piotr1990, a masy połączyłeś? Takie niestabilizowane zasilanie czujnika też raczej nie wpływa dobrze na pomiary...

Link to post
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.

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 to post
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 to post
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 to post
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 to post
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 to post
Share on other sites

Treker, Bool zwykle ma 8 bitów szerokości, więc sam w sobie nie jest lepszy od int8_t. Natomiast oszczędność widać w tablicach (oraz vectorach itd.) gdze kompilator osiąga często ok. 1bit/zmienną.

Link to post
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 to post
Share on other sites
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

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.