Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'Początkujący'.

  • Szukaj wg tagów

    Wpisz tagi, oddzielając przecinkami.
  • Szukaj wg autora

Typ zawartości


Kategorie forum

  • Elektronika i programowanie
    • Elektronika
    • Arduino, ESP
    • Mikrokontrolery
    • Raspberry Pi
    • Inne komputery jednopłytkowe
    • Układy programowalne
    • Programowanie
    • Zasilanie
  • Artykuły, projekty, DIY
    • Artykuły redakcji (blog)
    • Artykuły użytkowników
    • Projekty - roboty
    • Projekty - DIY
    • Projekty - DIY (początkujący)
    • Projekty - w budowie (worklogi)
    • Wiadomości
  • Pozostałe
    • Oprogramowanie CAD
    • Druk 3D
    • Napędy
    • Mechanika
    • Zawody/Konkursy/Wydarzenia
    • Sprzedam/Kupię/Zamienię/Praca
    • Inne
  • Ogólne
    • Ogłoszenia organizacyjne
    • Dyskusje o FORBOT.pl
    • Na luzie
    • Kosz

Szukaj wyników w...

Znajdź wyniki, które zawierają...


Data utworzenia

  • Rozpocznij

    Koniec


Ostatnia aktualizacja

  • Rozpocznij

    Koniec


Filtruj po ilości...

Data dołączenia

  • Rozpocznij

    Koniec


Grupa


Znaleziono 30 wyników

  1. Zrobiłem prosty IoT: NodeMCU + BMP280, pracujący 2s, dwa razy w ciągu minuty, a w pozostałym czasie deepsleep, czyli średnie obciążenie powinno być mniejsze niż 20mA. Na razie zasilam to powerbankiem, ale wolałbym coś bardziej niezależnego, np. panel słoneczny. Znalazłem w sieci projekt stacji pogodowej z wemos, baterią słoneczną, 1 akumulatorem i do tego modułem TP4056: https://www.instructables.com/id/Solar-Powered-WiFi-Weather-Station/ (załączam obrazek). Jest bardzo prosty, bez dodatkowych stepup-ów, czy też rezystorów do regulacji prądu ładowania. Chciałem się upewnić, czy na pewno ta konfiguracja działa poprawnie? Czyli, czy w słoneczne dni panel solarny ładuje akumulator, a w pozostałym czasie kontroler ma zasilanie z akumulatora? Wcześniej przejrzałem b. pobieżnie wątki z forum i wynika z nich, że raczej takie urządzenie powinno być bardziej skomplikowane.
  2. Witam jestem nowy na forum i potrzebuję pomocy. Otóz robię projekt na studia i mam do wykonania stól obrotowy na wałku o średnicy 2cm który ma być napędzany silnikiem krokowym. Moje pytaie brzmi jak dobrać silnik i sterownik silnika gdyż nie rozumiem za bardzo podłączenia np. silnik krokowy zasilany napięciem 3,25V 1,18Nm a sterownik do niego polecają z botlandu zasilany napieciem 8V-35V jak to jest w kwesti podłączenia na zdjęciu poniżej w załączniku, zasilam np, sterownik 12V na motor power supply i logicznie daje mu 5V z arduino na sterowanie a na silnik jakie napięcie wyjdzie?
  3. Witam, umieszczam schemat mojego pierwszego Line Followera opartego na mikroprocesorze. Zdecydowałem się na rozwiązania najczęściej wykorzystywane w innych konstrukcjach tego typu przez początkujących: - ATmega328 - Pakiet LiPol 2S 7,4V - TB6612 (po jednym na każdy silnik) - Zasilanie silników bezpośrednio z pakietu - Stabilizator LM1117 dla logiki - 7 czujników KTIR0711S Schemat płytki głównej: Schemat płytki z czujnikami: Byłbym wdzięczny za przejrzenie schematu, czy nie popełniłem jakiegoś błędu przy połączeniach.
  4. Witam wszystkich z góry prosilbym o wyrozumiałość jestem osobą początkująca więc nie wszystko rozumiem tak jak Wy:) Przygodę z ardurinio zacząłem jakiś czas temu, przeczytałem większość poradników krok po kroku jednak nadal nie mogę połączyć dwóch funkcji na których mi bardzo zależy a chodzi mi dokładnie o taki projekt ( chciałbym aby rozjasnianie i przygasanie trzech ledow kontrolować w czasie millis oraz określając czas każdego leda z osobna kierować jego stanem po rozjasnieniu aby świecił przykładowo przez 3 sek. Próbowałem połączyć te 2 funkcje fade oraz millis ale coś mi nie wychodzi. Chciałbym coś z tego zrozumieć robię to wyłącznie dla siebie z upodobań do elektryki lecz z programowania jestem zielony. Pozdrawiam i przepraszam że jestem taki głupcem.
  5. Cześć kilka miesięcy temu zamówiłem kit AVT 5540 typ b ( radioodbiornik ) tutaj link do dokumentacji : https://serwis.avt.pl/manuals/AVT5540.pdf . Problem polega na tym że na ekranie lcd nic się nie wyświetla . Wymieniałem wyświetlacz i dalej nic. Wszystkie części są poprawnie przylutowane. Czy ktoś miał podobny problem lub wie jak mi pomóc ?
  6. Witam mam problem z projektem przepustnicy do gier. Pod podpięciu Arduino do komputera jako kontroler wykrywa tyko oś Z i obrót osi Z. Kontroler ma działać jako Throttle. Prosił bym o pomoc. Kod programu. #include "UnoJoy.h" void setup(){ setupPins(); setupUnoJoy(); } void loop(){ // Always be getting fresh data dataForController_t controllerData = getControllerData(); setControllerData(controllerData); } void setupPins(void){ // Set all the digital pins as inputs // with the pull-up enabled, except for the // two serial line pins for (int i = 2; i <= 12; i++){ pinMode(i, INPUT); digitalWrite(i, HIGH); } pinMode(A4, INPUT); digitalWrite(A4, HIGH); pinMode(A5, INPUT); digitalWrite(A5, HIGH); } dataForController_t getControllerData(void){ // Set up a place for our controller data // Use the getBlankDataForController() function, since // just declaring a fresh dataForController_t tends // to get you one filled with junk from other, random // values that were in those memory locations before dataForController_t controllerData = getBlankDataForController(); // Since our buttons are all held high and // pulled low when pressed, we use the "!" // operator to invert the readings from the pins controllerData.triangleOn = !digitalRead(2); controllerData.circleOn = !digitalRead(3); controllerData.squareOn = !digitalRead(4); controllerData.crossOn = !digitalRead(5); controllerData.dpadUpOn = !digitalRead(6); controllerData.dpadDownOn = !digitalRead(7); controllerData.dpadLeftOn = !digitalRead(8); controllerData.dpadRightOn = !digitalRead(9); controllerData.l1On = !digitalRead(10); controllerData.r1On = !digitalRead(11); controllerData.selectOn = !digitalRead(12); controllerData.startOn = !digitalRead(A4); controllerData.homeOn = !digitalRead(A5); // Set the analog sticks // Since analogRead(pin) returns a 10 bit value, // we need to perform a bit shift operation to // lose the 2 least significant bits and get an // 8 bit number that we can use controllerData.leftStickX = analogRead(A0) >> 2; controllerData.leftStickY = analogRead(A1) >> 2; controllerData.rightStickX = analogRead(A2) >> 2; controllerData.rightStickY = analogRead(A3) >> 2; controllerData.throttle = analogRead(A5)>>2; // And return the data! return controllerData; } oraz kod biblioteki /* UnoJoy.h * Alan Chatham - 2012 * RMIT Exertion Games Lab * * This library gives you a standard way to create Arduino code that talks * to the UnoJoy firmware in order to make native USB game controllers. * Functions: * setupUnoJoy() * getBlankDataForController() * setControllerData(dataForController_t dataToSet) * * NOTE: You cannot use pins 0 or 1 if you use this code - they are used by the serial communication. * Also, the setupUnoJoy() function starts the serial port at 38400, so if you're using * the serial port to debug and it's not working, this may be your problem. * * === How to use this library === * If you want, you can move this file into your Arduino/Libraries folder, then use it like a normal library. * However, since you'll need to refer to the details of the dataForController_t struct in this file, I would suggest you use * it by adding it to your Arduino sketch manually (in Arduino, go to Sketch->Add file...) * * To use this library to make a controller, you'll need to do 3 things: * Call setupUnoJoy(); in the setup() block * Create and populate a dataForController_t type variable and fill it with your data * The getBlankDataForController() function is good for that. * Call setControllerData(yourData); where yourData is the variable from above, * somewhere in your loop(), once you're ready to push your controller data to the system. * If you forget to call sendControllerData in your loop, your controller won't ever do anything * * You can then debug the controller with the included Processing sketch, UnoJoyProcessingVisualizer * * To turn it into an actual USB video game controller, you'll reflash the * Arduino's communication's chip using the instructions found in the 'Firmware' folder, * then unplug and re-plug in the Arduino. * * Details about the dataForController_t type are below, but in order to create and use it, * you'll declare it like: * * dataForController_t sexyControllerData; * * and then control button presses and analog stick movement with statements like: * * sexyControllerData.triangleOn = 1; // Marks the triangle button as pressed * sexyControllerData.squareOn = 0; // Marks the square button as unpressed * sexyControllerData.leftStickX = 90; // Analog stick values can range from 0 - 255 */ #ifndef UNOJOY_H #define UNOJOY_H #include <stdint.h> #include <util/atomic.h> #include <Arduino.h> // This struct is the core of the library. // You'll create an instance of this and manipulate it, // then use the setControllerData function to send that data out. // Don't change this - the order of the fields is important for // the communication between the Arduino and it's communications chip. typedef struct dataForController_t { uint8_t triangleOn : 1; // Each of these member variables uint8_t circleOn : 1; // control if a button is off or on uint8_t squareOn : 1; // For the buttons, uint8_t crossOn : 1; // 0 is off uint8_t l1On : 1; // 1 is on uint8_t l2On : 1; uint8_t l3On : 1; // The : 1 here just tells the compiler uint8_t r1On : 1; // to only have 1 bit for each variable. // This saves a lot of space for our type! uint8_t r2On : 1; uint8_t r3On : 1; uint8_t selectOn : 1; uint8_t startOn : 1; uint8_t homeOn : 1; uint8_t dpadLeftOn : 1; uint8_t dpadUpOn : 1; uint8_t dpadRightOn : 1; uint8_t dpadDownOn : 1; uint8_t padding : 7; // We end with 7 bytes of padding to make sure we get our data aligned in bytes uint8_t leftStickX : 8; // Each of the analog stick values can range from 0 to 255 uint8_t leftStickY : 8; // 0 is fully left or up uint8_t rightStickX : 8; // 255 is fully right or down uint8_t rightStickY : 8; // 128 is centered. uint8_t throttle :8; // Important - analogRead(pin) returns a 10 bit value, so if you're getting strange // results from analogRead, you may need to do (analogRead(pin) >> 2) to get good data } dataForController_t; // Call setupUnoJoy in the setup block of your program. // It sets up the hardware UnoJoy needs to work properly void setupUnoJoy(void); // You can also call the set void setupUnoJoy(int); // This sets the controller to reflect the button and // joystick positions you input (as a dataForController_t). // The controller will just send a zeroed (joysticks centered) // signal until you tell it otherwise with this function. void setControllerData(dataForController_t); // This function gives you a quick way to get a fresh // dataForController_t with: // No buttons pressed // Joysticks centered // Very useful for starting each loop with a blank controller, for instance. // It returns a dataForController_t, so you want to call it like: // myControllerData = getBlankDataForController(); dataForController_t getBlankDataForController(void); //----- End of the interface code you should be using -----// //----- Below here is the actual implementation of // This dataForController_t is used to store // the controller data that you want to send // out to the controller. You shouldn't mess // with this directly - call setControllerData instead dataForController_t controllerDataBuffer; // This updates the data that the controller is sending out. // The system actually works as following: // The UnoJoy firmware on the ATmega8u2 regularly polls the // Arduino chip for individual bytes of a dataForController_t. // void setControllerData(dataForController_t controllerData){ // Probably unecessary, but this guarantees that the data // gets copied to our buffer all at once. ATOMIC_BLOCK(ATOMIC_FORCEON){ controllerDataBuffer = controllerData; } } // serialCheckInterval governs how many ms between // checks to the serial port for data. // It shouldn't go above 20 or so, otherwise you might // get unreliable data transmission to the UnoJoy firmware, // since after it sends a request, it waits 25 ms for a response. // If you really need to make it bigger than that, you'll have to // adjust that timeout in the UnoJoy ATmega8u2 firmware code as well. volatile int serialCheckInterval = 1; // This is an internal counter variable to count ms between // serial check times int serialCheckCounter = 0; // This is the setup function - it sets up the serial communication // and the timer interrupt for actually sending the data back and forth. void setupUnoJoy(void){ // First, let's zero out our controller data buffer (center the sticks) controllerDataBuffer = getBlankDataForController(); // Start the serial port at the specific, low-error rate UnoJoy uses. // If you want to change the rate, you'll have to change it in the // firmware for the ATmega8u2 as well. 250,000 is actually the best rate, // but it's not supported on Macs, breaking the processing debugger. Serial.begin(38400); // Now set up the Timer 0 compare register A // so that Timer0 (used for millis() and such) // also fires an interrupt when it's equal to // 128, not just on overflow. // This will fire our timer interrupt almost // every 1 ms (1024 us to be exact). OCR0A = 128; TIMSK0 |= (1 << OCIE0A); } // If you really need to change the serial polling // interval, use this function to initialize UnoJoy. // interval is the polling frequency, in ms. void setupUnoJoy(int interval){ serialCheckInterval = interval; setupUnoJoy(); } // This interrupt gets called approximately once per ms. // It counts how many ms between serial port polls, // and if it's been long enough, polls the serial // port to see if the UnoJoy firmware requested data. // If it did, it transmits the appropriate data back. ISR(TIMER0_COMPA_vect){ serialCheckCounter++; if (serialCheckCounter >= serialCheckInterval){ serialCheckCounter = 0; // If there is incoming data stored in the Arduino serial buffer while (Serial.available() > 0) { pinMode(13, OUTPUT); //digitalWrite(13, HIGH); // Get incoming byte from the ATmega8u2 byte inByte = Serial.read(); // That number tells us which byte of the dataForController_t struct // to send out. Serial.write(((uint8_t*)&controllerDataBuffer)[inByte]); //digitalWrite(13, LOW); } } } // Returns a zeroed out (joysticks centered) // dataForController_t variable dataForController_t getBlankDataForController(void){ // Create a dataForController_t dataForController_t controllerData; // Make the buttons zero controllerData.triangleOn = 0; controllerData.circleOn = 0; controllerData.squareOn = 0; controllerData.crossOn = 0; controllerData.l1On = 0; controllerData.l2On = 0; controllerData.l3On = 0; controllerData.r1On = 0; controllerData.r2On = 0; controllerData.r3On = 0; controllerData.dpadLeftOn = 0; controllerData.dpadUpOn = 0; controllerData.dpadRightOn = 0; controllerData.dpadDownOn = 0; controllerData.selectOn = 0; controllerData.startOn = 0; controllerData.homeOn = 0; //Set the sticks to 128 - centered controllerData.leftStickX = 128; controllerData.leftStickY = 128; controllerData.rightStickX = 128; controllerData.rightStickY = 128; controllerData.throttle = 128; // And return the data! return controllerData; } #endif
  7. Witam, mam dwa proste (tak mi się wydaje) pytania odnośnie zasilania. 1.Czy można połączyć szeregowo dwa dwu celowe Li-Pol? 2. Zamierzam podpiąć pod te akumulatorki m.in. silnik krokowy, na sterowniku jest wejście oznaczone "Ground", mam podpiąć do niego minus na akumulatorze? Podobne pytanie mam odnośnie stabilizatora napięcia.
  8. Mam plan zbudowania prostego robota na raspberry pi 3 który będzie reagował na dźwięk i jechał w jego stronę , samego rpi już mam (stąd wybór) i pozostaje kwestia wyboru silniczków i tu mam problem, ponieważ nie wiem jak obliczyć masę jaką udźwigną dane silniczki więc bym był wdzięczny jak by ktoś mi przedstawił taki wzór
  9. Dzień dobry! Ostatnio poszukuję specyficznego typu płytek uniwersalnych. Mianowicie wiele razy widziałem takie jakieś żółte płytki bez miedzi, jakby plastikowe (okazuje się, że jest to kompozyt szklano-epoksydowy). W jednej z książek, na podstawie której się uczyłem elektroniki, te płytki były opisane jako przydatnem, ale trudne do znalezienia. Jednakże nie zraziłem się i zacząłem szukać. Odwiedziłem wiele sklepów internetowych, szukałem przy użyciu szukania obrazem, lecz algorytmy wujka Google nie rozpoznają tego typu płytek. Po kilku dniach znalazłem je. Link: https://pl.farnell.com/twin-industries/7100-062-4585/pc-board-epoxy-fiberglass-1-57mm/dp/2850729 Chciałbym się zapytać o trzy rzeczy: 1. Czy da się je znaleźć taniej i w innym sklepie 2. Jak się one nazywają (zakładam, że szukając używałem złych nazw) 3. Jeżeli ktoś ich używa/ używał, czy warto je jednak kupić? Edit: Sabre dobrze mi przypomniał: potrzebuję takich z wywierconymi dziurami z rasterem 2,54 (standard)
  10. Witam, mam problem z działaniem serwomechanizmu firmy TowardPro (tak wiem że jest to tańsza wersja TowerPro jednak nie zorientowałem się podczas zakupu przez internet i pokusiłem niższą ceną), posiadam serwomechanizm TowardPro MG996r i podczas podłączania go pod Arduino aby przez prosty program sterować nim za pomocą potencjometru to nie działa, kod jest poprawny sprawdzałem na innym serwie. Gdy podłączam serwo pod samo zasilanie ono zaczyna pracować jak zwykły silnik a jakby nie odczytuje pozycji potencjometru(?).Jako zasilania używam baterii 9V przez stabilizator 5V/2A.
  11. Witam mam pytanie czy te silniki się nadają do roweru 100kg=waga moja+rower+części i z jaka maksymalnie prędkością pojadę Silnik 300W 2250obr/min 12v Silnik 250w 2750obr/min 12v Koła 26cali i są normalne opony jak do roweru Tak wiem że takie "wiejskie tuningi" są niedozwolone bez odpowiednich uprawnień Interesuje mnie prędkość maksymalna po obliczeniu RPM na km/h oraz tego tarcia wagi itp. nie ile maks jest w prawie Polskim i drogowym Nie to nie jest zadanie domowe
  12. Witam bardzo serdecznie jestem tu pierwszy raz więc proszę o wyrozumiałość . Chciałbym złożyć drobny układ, który to by mi ładował powerbank dzięki energii słonecznej, mam panel 6v 1w 200mA oraz stabilizator ka78L05.Gdy na panelu mam napięcie 5.6V to na stabilizatorze uzyskuje 4.2, dodatkowo gdy podłączamy przetwornice step-up 1.2A 5v to na wyjściu otrzymuje ledwo 3V nie znam dokładnie przyczyny tak słabego napięcia na wyjściu, dlatego też czy jeżeli bym dołożył jeszcze jeden panel o tych samych specyfikacjach to czy bym osiągnął zadowalający efekt? Tzn. mógłbym podłączyć powerbank i by śmigalo wszystko.
  13. Witam, Posiadam arduino UNO + Shield sterownika L293D do 4x silników DC. Za pomocą funkcji switch steruje sobie aby silniczek kręcił się w prawo, lewo lub się zatrzymywał. Zrobiłem również prosta aplikację do androida za pomocą MIT App Invenstor, gdzie wysyłam na serial odpowiednie zmienne. I teraz chciałbym sterować prędkością tych silniczków, za pomocą 4 przycisków ("+" i "-" - dla każdego silniczka). Tylko mam problem z wysyłaniem w taki sposób aby nie przerywać działania poprzedniej komendy np. jazdy na przód. Teoretycznie mógłbym zapamiętać ostatni stan silniczka i dopisać zaraz pow wysłaniu zmiennej określającej obroty silniczka, ale jakoś ten pomysł wydaje mi się dziwny. Czy jest jakiś inny sposób? Szukałem na google ale nie mogłem nic trafić.
  14. Witam, Zainspirował mnie pomysł ze strony: https://create.arduino.cc/projecthub/kksjunior/windows-pc-lock-unlock-using-rfid-5021a6?ref=tag&ref_id=rfid&offset=0 aczkolwiek zmieniłbym parę rzeczy. Części do projektu: -Arduino Pro Micro -Moduł RFID RC522 -Dioda LED zielona -Dioda LED czerwona -2 Rezystory 220Ohm -Rezystor 67Ohm -Rezystor 270Ohm -Buzzer (opcjonalne) -Przełącznik na 3 piny (opcjonalne) Najpierw zaprojektowałem sam układ, który wygląda o tak: Gdy wszystko było gotowe zabrałem się do podłączania do breadboard'a testującego, ponieważ zawsze dobrze jest sprawdzić obwód zanim się go przylutuje na stałe. Chciałem jednak wziąć ten projekt o krok dalej, i zaprojektowałem płytkę PCB, i zamówiłem ją na https://jlcpcb.com : Pojawił się jednak mały problem, ponieważ mam tylko arduino nano i uno, ale potrzeba mikroprocesora atmega32u4, który można znaleźć tylko w arduino MEGA i pro Micro. Wybrałem Pro Micro, ponieważ chcę, aby ten obwód był jak najmniejszy. Po podłączeniu wszystkiego, działało to bez problemu. Dla zainteresowanych, oto kod: pc.rar Teraz tylko czekam, aż moja PCB przyjedzie.
  15. Posiadam mikrokontroler PIC. Jestem początkującym w dziedzinie mikrokontrolerów i mam nie dużą wiedzę z zakresu ich programowania. Samego programowania uczę się ale na razie tylko teorię. Mikrokontroler jaki posiadam to PIC 32MM USB Curiosity Development Board i muszę zaprogramować go aby współgrał z modułem sieci bezprzewodowej ziggBee. Wspomniany moduł to 6LowPAN T Click. Zaprogramowanie jest mi potrzebne dopracy inżynierskiej. Proszę o najważniejsze elementy i informację wysyłać w wiadomości prywatnej, ponieważ możliwe, że będą użyte.Takie dane mogą być uwzględnione przez antyplagiat imusiałbym dodatkowo zmieniać istotne elementy. http://microchipdeveloper.com/boards:pic32mm-usb-curiosity https://www.microchip.com/DevelopmentTools/ProductDetails/dm320107 Tutaj jeste więcej na temat płytki. Program jaki posiadam to MPlab X w wersji 5.10
  16. Cześć wszystkim, Czy ktoś z was ma pojęcie o tworzeniu robotów na bazie środowiska ROS? Mnogość gotowych bibliotek i szkieletów jest imponująca. Mam olbrzymią ochotę poznać ten system, ale borykam się z brakiem źródeł i tutoriali. To nie arduino, gdzie "świeżaka" przytłacza masa gotowych projektów, na których można się wzorować. Na początek kilka pytań do osób, które już w tym systemie coś stworzyły: Od czego zacząć. (Od przerzucenia się na linuxa Willie domniemam, poprawcie mnie jeśli się mylę) Instalacja środowiska ROS Podpięcie platformy docelowej która będzie w robocie. RPi lub inny wspierany układ. - Jakie są inne obsługiwane? Tego puntu nie jestem pewien: Pobranie jądra frameworka docelowego projektu, łazik, dron, ramię 6 DOF etc .. ? Dostosowanie i/lub dopisanie w pythonie brakujących funkcjonalności.
  17. Cześć!!! Podczas pisania kodu programu natrafiłem na problem. Pisze program w którym każdy solenoid (na razie dioda) odpowiada, numerowi. Na ekranie wyświetla się coś w stylu menu z liczbami, którym steruje się dwoma przyciskami (góra[1], dół[2]). Po wybraniu opcji zatwierdza się ją przyciskiem[3]. Problem polega na tym, że nie wiem jak zrobić aby program "wykrywał" pojedyncze liczby i zaświetlił odpowiednie diody. np. Liczba: 1 2 3 . 4 5 Diody: 4 5 6 2 7 8 Solenoidy będą naciskały klawiaturę numeryczną. Nie da się wpiąć bezpośrednio do urządzenia (Czyli do wielkich ekranów 7-dmio segmentowych, którymi steruje ww. klawiatura.). Kiedyś pisałem już temat na tym forum dotyczący tego samego programu: https://tiny.pl/txc4v Z góry dziękuję!!! #include <LCD.h> #include <LiquidCrystal.h> #include <LiquidCrystal_I2C.h> #include <Wire.h> #include <EasyButton.h> #define czasZatw 200 #define czasGoraDol 200 #define czas000 5000 #define czasSolen 1000 #define czasNaci 500 #define BACKLIGHT_PIN 3 LiquidCrystal_I2C lcd(0x3F,2,1,0,4,5,6,7); EasyButton zatw(A0); EasyButton wdol(A1); EasyButton wgore(A2); int array[15] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14 }; String a[17]; short b=-1; byte d=0; byte c=0; byte g=1; byte h=2; byte i=3; byte j=4; byte k=5; byte l=6; byte m=7; byte n=8; byte o=9; void setup() { pinMode(2,OUTPUT); pinMode(3,OUTPUT); pinMode(4,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(7,OUTPUT); pinMode(8,OUTPUT); pinMode(9,OUTPUT); pinMode(10,OUTPUT); pinMode(11,OUTPUT); pinMode(12,OUTPUT); Serial.begin(115200); zatw.begin(); wdol.begin(); wgore.begin(); zatw.onPressed(ztawierdz); wdol.onPressed(dol); wgore.onPressed(gora); pinMode(13,OUTPUT); lcd.begin (16,2); lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE); lcd.setBacklight(HIGH); lcd.setCursor(0,0); lcd.print("Aktualny: "); lcd.print(a[b]); lcd.setCursor(0,1); lcd.print("Nastepny: "); lcd.print(a[b+1]); a[16]="------"; a[15]="------"; a[14]="15.30"; a[13]="14.03"; a[12]="13.01"; a[11]="12.35"; a[10]="11"; a[9]="10"; a[8]="9"; a[7]="8.44"; a[6]="7"; a[5]="6.26"; a[4]="5.04"; a[3]="4.03"; a[2]="3"; a[1]="751.3"; a[0]="0.45"; } void ztawierdz() { if(b<16&&b>=0) { lcd.clear(); Serial.println("zatwierdzono!!!"); b++; c++; lcd.setCursor(0,0); lcd.print("Aktualny: "); lcd.print(a[b]); lcd.setCursor(0,1); lcd.print("Nastepny: "); lcd.print(a[b+1]); b=c; digitalWrite(13, HIGH); delay(czasZatw); digitalWrite(13, LOW); delay(czasZatw); digitalWrite(13, HIGH); delay(czasZatw); digitalWrite(13, LOW); delay(czasZatw); digitalWrite(13, HIGH); delay(czasZatw); digitalWrite(13, LOW); digitalWrite(2,HIGH); delay(czasSolen); digitalWrite(2,LOW); delay(czasNaci); if(a[0][0]%g){ digitalWrite(3,HIGH); delay(czasSolen); digitalWrite(3,LOW); delay(czasNaci); } if(a[0][0]%h) { digitalWrite(4,HIGH); delay(czasSolen); digitalWrite(4,LOW); delay(czasNaci); } if(a[c][d]==h) { digitalWrite(5,HIGH); delay(czasSolen); digitalWrite(5,LOW); delay(czasNaci); } if(a[c][d]==i) { digitalWrite(6,HIGH); delay(czasSolen); digitalWrite(6,LOW); delay(czasNaci); } if(a[c][d]==j) { digitalWrite(7,HIGH); delay(czasSolen); digitalWrite(7,LOW); delay(czasNaci); } if(a[c][d]==k) { digitalWrite(8,HIGH); delay(czasSolen); digitalWrite(8,LOW); delay(czasNaci); } if(a[c][d]==l) { digitalWrite(9,HIGH); delay(czasSolen); digitalWrite(9,LOW); delay(czasNaci); } if(a[c][d]<m) { digitalWrite(10,HIGH); delay(czasSolen); digitalWrite(10,LOW); delay(czasNaci); } if(a[c][d]==n) { digitalWrite(11,HIGH); delay(czasSolen); digitalWrite(11,LOW); delay(czasNaci); } if (a[c][d]==o) { digitalWrite(12,HIGH); delay(czasSolen); digitalWrite(12,LOW); delay(czasNaci); } d+1; } } void dol() { if(b<16&&b>=1) { lcd.clear(); Serial.println("w dol!!!"); b--; lcd.setCursor(0,0); lcd.print("Aktualny: "); lcd.print(a[b]); lcd.setCursor(0,1); lcd.print("Nastepny: "); lcd.print(a[b+1]); digitalWrite(13, HIGH); delay(czasGoraDol); digitalWrite(13, LOW); } } void gora() { if(b<15) { lcd.clear(); Serial.println("w gore!!!"); b++; lcd.setCursor(0,0); lcd.print("Aktualny: "); lcd.print(a[b]); lcd.setCursor(0,1); lcd.print("Nastepny: "); lcd.print(a[b+1]); digitalWrite(13, HIGH); delay(czasGoraDol); digitalWrite(13, LOW); } } void loop() { zatw.read(); wdol.read(); wgore.read(); }
  18. Witam wszystkich chciałbym Wam dzisiaj pokazać sejf mojego autorstwa. Może on być głównie wykorzystywany jako ciekawostka lub zabawka. Projekt powstał w celu nauczenia się podstaw arduino. Ostatnio nauczyłem się sterowania silniczkami oraz przechwytywania liczb z klawiatury. Po połączeniu tych umiejętności z podstawami programowania powstał ten projekt sejfu. Przy tworzeniu tego projektu wykorzystałem następujące materiały: Arduino Uno Klawiaturę numeryczną Serwo potencjometr Przewody połączeniowe męsko-damskie Wykonanie: Projekt został wykonany z elementów jakie posiadałem w domu. Do Arduino podłączone są przewody, które łączą się z serwem (zasilanie, masa oraz sygnał sterujący). Przewody z wyświetlacza są podłączone bezpośrednio do Arduino poza V0. Ponadto, V0 zostało zintegrowane z potencjometrem i służy do regulacji kontrastu wyświetlacza. Układ jest zasilany baterią 9V za pomocą odpowiedniego adaptera Działanie projektu: Program przechwytuje z klawiatury kod wpisywany przez użytkownika. Jeśli kod jest prawidłowy to uruchamia się serwo i otwiera skrytkę. Jeśli kod jest nie prawidłowy program informuje użytkownika o niepoprawnym haśle. Na klawiaturze znajdują się klawisze A, B, C, D, # i *. Mój program ich nie wykorzystuje, ale jeśli ktoś chce wykonać taki projekt to może je wykorzystać. Po kliknięciu wyżej wymienionych klawiszy program informuje o naciśnięciu złego klawisza. Kod: #include <Servo.h> #include <LiquidCrystal.h> // biblioteka do LCD #include <Keypad.h> //biblioteka do klawiatury Servo servo; int pos = 40; char* password ="7890"; //hasło int pozisyon = 0; int przycisk = 0; const byte rows = 4; const byte cols = 4; char keyMap [rows] [cols] = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; byte rowPins [rows] = {1, 2, 3, 4}; byte colPins [cols] = {5, 6, 7, 8}; Keypad myKeypad = Keypad( makeKeymap(keyMap), rowPins, colPins, rows, cols); LiquidCrystal lcd (A0, A1, A2, A3, A4, A5); void setup(){ servo.attach(9); lcd.begin(16, 2); setLocked (true); przycisk = 0; } void loop(){ setLocked (true); char whichKey = myKeypad.getKey(); lcd.setCursor(0, 0); lcd.print(" Witam"); lcd.setCursor(0, 1); lcd.print(" Wpisz haslo"); if(whichKey == '*' || whichKey == '#' || whichKey == 'A' || whichKey == 'B' || whichKey == 'C' || whichKey == 'D'){ przycisk=0; pozisyon=0; setLocked (true); lcd.clear(); lcd.setCursor(0, 0); lcd.print("ZLY PRZYCISK"); delay(1000); lcd.clear(); } if(whichKey == '0' || whichKey == '1' || whichKey == '2' || whichKey == '3' || //define keys whichKey == '4' || whichKey == '5' || whichKey == '6' || whichKey == '7' || whichKey == '8' || whichKey == '9'){ przycisk++; } if(przycisk == 5){ przycisk = 0; lcd.clear(); lcd.setCursor(0,0); lcd.write(" ZA DUZO"); lcd.setCursor(0,1); lcd.write(" ZNAKOW"); delay(1000); lcd.clear(); } if(przycisk == 1){ lcd.clear(); lcd.setCursor(0,1); lcd.write(" *"); } if(przycisk == 2){ lcd.clear(); lcd.setCursor(0,1); lcd.write(" **"); } if(przycisk == 3){ lcd.clear(); lcd.setCursor(0,1); lcd.write(" ***"); } if(przycisk == 4){ lcd.clear(); lcd.setCursor(0,1); lcd.write(" ****"); } if(przycisk == 4 && pozisyon < 3){ lcd.clear(); lcd.setCursor(0,0); lcd.write(" ZLE"); lcd.setCursor(0,1); lcd.write(" HASLO"); delay(1000); przycisk = 0; lcd.clear(); } if(whichKey == password [pozisyon]){ pozisyon ++; } if(pozisyon == 4){ przycisk = 0; pozisyon = 0; setLocked (false); lcd.clear(); lcd.setCursor(0, 0); lcd.print("*** Verified ***"); delay(3000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Skrytka zamknie"); lcd.setCursor(0, 1); lcd.print(" sie za 5s"); delay(7000); lcd.clear(); } delay(100); } void setLocked(int locked){ if(locked){ servo.write(40); } else{ przycisk = 0; servo.write(130); } } Przyszłość projektu: Projekt można modyfikować (np. zmiana hasła przez użytkownika). Można też zmienić rodzaj zabezpieczenia z kodu czterocyfrowego na hasło z literami lub odcisk palca użytkownika. W najbliższej przyszłości zamierzam to połączyć z Raspberry Pi (rozpoznawanie twarzy) i Google AIY Voice Kit (komendy głosowe). Film: Zdjęcia:
  19. Na wstępie witam wszystkich forumowiczów. Jest to mój pierwszy post i początki zabawy z elektroniką więc proszę o wyrozumiałość. Tworzę ten temat ponieważ chciałbym stworzyć takiego robota (nalewak) jak w linku poniżej. https://www.youtube.com/watch?v=CLx0VmyivU8 Ogólnie lubię sobie majsterkować jednak bardziej skomplikowaną elektronikę omijałem szerokim łukiem. Do czasu gdy zobaczyłem ten filmik i postanowiłem takie coś skonstruować samodzielnie. Jakie podzespoły zostały tu użyte wydają mi się czytelne jednak problem jest w napisaniu takiego programu który by to obsłużył i połączeniu wszystkiego razem. Pomyślałem o arduino i zacząłem zgłębiać wiedzę na ten temat czytając kurs o arduino. Trochę wiedzy nabyłem jednak to jest ciągle za mało żeby coś takiego stworzyć dlatego tworzę ten temat i proszę was o pomoc. Utknąłem można powiedzieć że na samym początku. Mam tylko koncepcję jak to połączyć. Chcę obracać talerz silnikiem krokowym który będzie się zatrzymywał w wyznaczonym miejscu po przez czujnik nacisku, gdy wykryje nacisk czyli kieliszek zatrzyma się na odpowiednią ilość czasu w odpowiednim miejscu, a w tym czasie pompka zacznie nalewać płyn po pełnym obrocie maszyna zatrzyma się automatycznie. Jednak nie wiem jak napisać ten program, próbuję swoich sił tu https://www.tinkercad.com/. Można sprawdzić czy wszytko działa nie obawiając się że coś popsujemy, jednak nie ma tu niektórych komponentów jak czujnik nacisku co utrudnia mi trochę prace. Czym taką czujkę mogę zastąpić ? tak samo pompkę ? Chyba że moja koncepcja nie jest do zrealizowania albo można to rozwiązać lepiej ? Z góry dziękuję za wyrozumiałość i proszę o pomoc.
  20. Witam forumowiczów, na wstępie wspomnę iż dopiero rozpoczynam swoją przygodę z elektroniką toteż proszę o wyrozumiałość jeśli pojawi się taka potrzeba. Mam do przygotowania urządzenie którego opis przygotowałem poniżej. Urządzenie ma posiadać wbudowaną pamięć w której przechowywane będą pliki audio oraz pliki tekstowe (.txt, .xlsx, .csv, itp.) które powinny mieć możliwość łatwej aktualizacji (np. podłączenie tabletu lub telefonu przez bluetooth lub usb / wifi / wbudowany slot na kartę SIM i aktualizacja przez internet (preferowane jeśli cena nie okaże się zaporowa)). Pamięć nie powinna być potrzebna większa niż 100 megabajtów. Urządzenie ma być zamknięte w niesprecyzowanej jeszcze obudowie z jednym przyciskiem zewnętrznym po naciśnięciu którego na podstawie zawartości plików tekstowych oraz aktualnej godziny odtwarzany ma być wybrany przez algorytm plik audio. Urządzenie powinno być dostosowane do działania w warunkach zewnętrznych. Zasilanie urządzenia ma pochodzić z sieci energetycznej, ewentualnie z baterii połączonej z panelem fotowoltaicznym. W pierwszej kolejności muszę ustalić platformę która będzie najlepsza (najtańsza ze spełniających założenia). Po wstępnym sprawdzeniu rozwiązań doszedłem do wniosku, że najlepszą platformą do realizacji powyższego zadania będzie Arduino ewentualnie Raspberry pi‎. Oba rozwiązania wydają się oferować wszystko czego potrzebuję. Czy mam rację i powinienem wybrać jedno z tych rozwiązań? Może coś przeoczyłem i wspomniane rozwiązania uniemożliwiają realizację któregoś z opisanych wymagań? Czy może jest jakieś inne które spełni wymagania a w realizacji okaże się tańsze? Z góry dziękuję za zainteresowanie i odpowiedź. W przypadku zainteresowania wątkiem chętnie będę go kontynuować ponieważ wybór rozwiązania to dopiero pierwszy krok na długiej drodze do powstania prototypu.
  21. Witam, potrzebuje porady. Posiadam taką baterię z wyjściem EC2: https://www.banggood.com/Hubsan-H501S-X4-RC-Quadcopter-Spare-Parts-7_4V-2700mAh-10C-Battery-H501S-14-p-1045993.html?utm_campaign=3534781_1045993&amp;utm_content=1087&amp;p=QO14213534781201601L Chcę ją użyć do zasilania Arduino, Myślałem żeby połączyć to ze sobą za pomocą: https://botland.com.pl/pl/szybkozlacza/1590-wtyk-dc-55x21mm-z-szybkozlaczem.html?search_query=szybkozlacze&amp;results=30, czy to dobry pomysł ? w jaki sposób najlepiej to połączyć ze sobą ?
  22. Witam wszystkich, zachęcony konkursem opiszę mój niedawny projekt i na tym forum, projekt ten pojawił już się na majsterkowie, kto nie zna to polecam ten portal. Artykuł podzielę na trzy części: budowa, szybki poradnik jak się tego używa i dlaczego taka nie inaczej. To po raz któryś, zaczynamy. Budowa Projekt powstał dzięki temu że jestem harcerzem i na pewno zostanie wykorzystany przy jakiś grach, ale jak lubicie się bawić to bez problemu można wykorzystać go do komunikacji, chyba że nadejdzie apokalipsa zombi i nie będzie innego wyjścia. Będzie nam potrzebne: (ilość jest podana do budowy 2 urządzeń, choć można zbudować więcej i je połączyć) 4 lub 2 stare baterie 9v(albo gniazda dla tych baterii) 2 włączniki chwilowe 2 buzzery z generatorem 2 diody led bardzo fajne zestawy diod mają na botlandzie 4 diody prostowicze 2 jakieś mocowania kabli( ja użyłem kostek) takie będą idealne jakaś obudowa Tak więc zabieramy się za cięcie. I po chwili. A teraz wyciągnijmy nasze złącza ze starej baterii 9v Układ w środku będzie wyglądać tak. I teraz popełniłem największy błąd. Wmontowałem wszystkie bebechy do środka zamiast najpierw skończyć obudowę, ale cóż, trzeba uczyć się na błędach, a reszta pracy przebiegała następująco. Jedna kostka jaką wykorzystałem pochodziła z listwy więc musiałem ją zaszpachlować szpachlą do drewna. I tu już ostateczne testy przed malowaniem. Jak widać trochę wiórów z klejem poszło, trzeba się będzie postarać bardziej następnym razem ;). Jeszcze pomalować i gotowe. Jak to działa? Na początku trzeba minimum dwa urządzenia ze sobą połączyć.Zasada jest prosta. Wciśnięcie przycisku powoduje zamknięcie obwodu, z buzzera wydobywa się pisk i jeśli dioda się świeci znaczy to, że odbiornik sygnał odbiera, a jeśli nie to należy zmienić kolejność kabli w kostce. Jeśli nie zadziała czeka nas spacer do kolegi by sprawdzić czy na pewno podłączył to co trzeba tam gdzie trzeba. Tyle z samego urządzenia, a teraz sama komunikacja. Sposoby są dwa.W tym łatwiejszym umawiamy się że jakiś rym coś oznacza a inny coś innego np. początek rytmu „Przez twe oczy zielone” to chodź do mnie a „Miłość w Zakopanem” to zaraz będę, zagrzej pizze.W profesjonalnym posłużymy się alfabetem Morse’a. Wszystkie litery i znaki są kodowane według tej tablicy: Kropka oznacza krótki dźwięk, a kreska długi. Słowa możemy oddzielić dłuższą przerwą niż między literami, zdanie bardzo długim dźwiękiem. Szkoły są różne. Praktycznie przy nadawaniu najłatwiej wykorzystać tą tablicę: i nadając w myśli mówimy sobie słowo=literę zatrzymując się na o.Przy odbieraniu łatwiej skorzystać z tej tablicy: Słysząc kreskę wybieramy ramię z kreską, słysząc kropkę ramię z kropką i następną kropkę analogiczne ramię z kropką, jeśli to koniec litery dochodzimy do D i zapisujemy to na kartce. Dlaczego tak? Zawsze czytając o jakimś projekcie i chcąc go wykonać sprawdzałem wszystko co do czego służy, jak działa, czym można to zastąpić itd. Dlatego umieszczam tą część dla takich osób jak ja. Dwie baterie zamiast jednej?-Dwie baterie połączone szeregowo dają nam 2 razy wyższe napięcie niż jedna, choć układ na jednej też działa, ale dostęp do wyższego napięcia spowoduje że jest możliwe przyłączenie dłuższego przewodu. Buzzer z generatorem-No wiadomo, jakoś sygnał musimy odczytać, a patrzenie na migoczącą diodę nie jest wygodne. Dioda led-Bez niej nie wiedzielibyśmy czy nasz sygnał dochodzi, a po co się trudzić na marne, warto tutaj jeszcze zaznaczyć że buzzer jaki użyłem ma taki opór, że użycie dodatkowego opornika dla diody nie jest konieczne. Dioda prostownicza przy diodzie led-Prąd musi płynąć w 2 strony, a jeśli zastosowalibyśmy zwykły kabel, to dioda nie będzie świecić Dioda prostownicza przy buzzerze-Buzzer działa tylko jeśli podepniemy go + do +, a – do -, w przeciwnym wypadku może się popsuć więc warto go chronić. To by było na tyle. Jeśli zauważyliście jakiś błąd śmiało dajcie znać, nikt nie jest nieomylny, a ja należę do tych często mylnych ;). Dzięki za przeczytanie.
  23. Gość

    Telegraf

    Witam, Od niedawna borykam się z układam mającym działać jak telegraf. W takim sensie, iż do dyspozycji mamy 5 przycisków. Mają następujące funkcje: pisanie kropki pisanie kreski pisanie ukośnika wymazywanie całości zapisanego kodu wysyłanie kodu Nie wiem jak przesłać napisany kod Morse'a z Serial Monitora jednego Arduino do drugiego Arduino przez transmiter oraz odbiorem tego przez receiver i wyświetleniem tego na LCD. Próbowałem już coś kombinować, ale nie daje to żadnego efektu. Pozdrawiam
  24. Witam. Jestem początkującym użytkownikiem mikrokontrolerów i staram sie ogarnąć programowanie w BASCOM. Napisałem coś takiego bardzo prostego i w sumie spełniałoby to założenie ale mam pytanie czy można w jednym czasie uaktywnić dwa porty w tym przypadku PORTB.3 i PORTB.4. Oba porty musiałyby byś aktywne przez inny okres czasu /np. P3 - 1sek, P4 - 3sek/. Kolejne pytanie to czy można zdefiniować taką funkcje jeżeli na PORTB.0 pojawia sie napięcie to wykonywana jest jakaś funkcja np. podanie prądu na PORTB.3. Byłbym wdzięczny za podpowiedź ewentualnie podanie sposobu rozwiązania. Wiem ze całość napisana jest mało kulturalnie i zajmuje prawie całą pamięć kontrolera ale proszę o wyrozumiałość dopiero zaczynam. Pozdrawiam ' Atmel ATtiny13 $regfile = "attiny13.dat" ' 1 MHz internal clock $crystal = 1200000 ' PortB is Output Config Portb = Output $hwstack = 8 $swstack = 8 $framesize = 8 ' Start motor Do Portb.3 = 1 'lights Waitms 10 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 5 Portb.0 = 0 Waitms 800 Portb.3 = 1 'lights Waitms 8 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 5 Portb.0 = 0 Waitms 900 Portb.3 = 1 'lights Waitms 8 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 10 Portb.0 = 0 Waitms 700 Portb.3 = 1 'lights Waitms 10 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 7 Portb.0 = 0 Waitms 700 Portb.3 = 1 'lights Waitms 8 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 8 Portb.0 = 0 Waitms 500 Portb.3 = 1 'lights Waitms 9 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 10 Portb.0 = 0 Waitms 700 Portb.3 = 1 'lights Waitms 7 Portb.3 = 0 'lights Waitms 1 Portb.0 = 1 Waitms 9 Portb.0 = 0 Waitms 600 Portb.3 = 1 'lights Waitms 7 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 15 Portb.0 = 0 Waitms 700 Portb.3 = 1 'lights Waitms 5 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 15 Portb.0 = 0 Waitms 500 Portb.3 = 1 'lights Waitms 8 Portb.3 = 0 'lights Waitms 1 Portb.0 = 1 Waitms 20 Portb.0 = 0 Waitms 500 Portb.3 = 1 'lights Waitms 10 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 24 Portb.0 = 0 Waitms 400 Portb.3 = 1 'lights Waitms 6 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 30 Portb.0 = 0 Waitms 400 Portb.3 = 1 'lights Waitms 10 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 5 Portb.0 = 0 Waitms 700 Portb.3 = 1 'lights Waitms 11 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 5 Portb.0 = 0 Waitms 400 Portb.3 = 1 'lights Waitms 11 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 24 Portb.0 = 0 Waitms 400 Portb.3 = 1 'lights Waitms 11 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 50 Portb.0 = 0 Waitms 300 Portb.0 = 1 Waitms 90 Portb.0 = 0 Waitms 300 Portb.0 = 1 Waitms 120 Portb.0 = 0 Waitms 200 Portb.0 = 1 Waitms 500 Portb.0 = 0 Waitms 100 Portb.0 = 1 Waitms 400 Portb.0 = 0 Waitms 90 Portb.0 = 1 Waitms 800 Portb.0 = 0 Waitms 60 Portb.0 = 1 Waitms 1000 Portb.0 = 0 Waitms 400 Loop
  25. Witam jestem całkowicie nowy tutaj, zrobilem według poradnikow modul ktory po klasnieciu mial zapalać pasek led. Po podłączeniu tego mimo klaskania nic sie nie dzieje. Jedynie kiedy podłączyłem jeden z kabli od ledow do trzeciego wejscie w przekaźniku to sie ciagle swieciły ale także nie reagowały na klaskanie. Kod: int soundSensor = 3; int relay = 4; int claps = 0; long detectionSpanInitial = 0; long detectionSpan = 0; boolean lightState = false; void setup() { pinMode(soundSensor, INPUT); pinMode(relay, OUTPUT); } void loop() { int sensorState = digitalRead(soundSensor); if (sensorState == 0) { if (claps == 0) { detectionSpanInitial = detectionSpan = millis(); claps++; } else if (claps > 0 && millis()-detectionSpan >= 50) { detectionSpan = millis(); claps++; } } if (millis()-detectionSpanInitial >= 400) { if (claps == 2) { if (!lightState) { lightState = true; digitalWrite(relay, HIGH); } else if (lightState) { lightState = false; digitalWrite(relay, LOW); } } claps = 0; } }
×
×
  • Utwórz nowe...