Skocz do zawartości

Pomocna odpowiedź

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

Czegoś tu nie rozumiem, zrób najlepiej schemat. Połączyłeś masę Arduino z masą baterii (podłączonej do czujnika)?

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.

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

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.

  • 1 miesiąc później...

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

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

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ą.

  • 2 tygodnie później...

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
 }

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