Blach
Użytkownicy-
Zawartość
11 -
Rejestracja
-
Ostatnio
Informacje
-
Płeć
Mężczyzna
Ostatnio na profilu byli
457 wyświetleń profilu
Osiągnięcia użytkownika Blach
-
Nietypowy problem z zasilaniem - po podłączeniu włącznika występuje spadek napięcia
Blach odpisał w temacie użytkownika Blach • Arduino i ESP
Przed zwarciem styków - OL, po 0.2 ohma -
Witam serdecznie. Na finiszu budowy robota omijającego przeszkody na Arduino, napotkałem nietypowy problem z zasilaniem, robot jest zasilany z 3 akumulatorów 18650. Po bezpośrednim ich podłączeniu do shielda L293d robot normalnie działa, natomiast po podłączeniu ich przez prosty włącznik kołyskowy, występuje spadek napięcia z 12 do 3,5V, jakby się robiło jakieś zwarcie. Wymiana włącznika nic nie dała. Mam nadzieję, ze ktoś będzie w stanie mi pomóc. Z góry dziękuje za szybką odpowiedź. Pozdrawiam
-
Blach uzyskał 100% w quizie: Quiz do kursu podstaw lutowania
-
Blach uzyskał 80% w quizie: Znajomość symboli elementów elektronicznych (1/2)
-
Blach uzyskał 53% w quizie: 15 akronimów, które powinien rozszyfrować każdy elektronik
-
Blach uzyskał 86% w quizie: Quiz (1/4) do kursu podstaw elektroniki
-
Blach uzyskał 86% w quizie: Fotozagadka: co to za element?
-
Problem z robotem zasilanym akumulatorami 18650 (nie chce wystartować)
Blach odpisał w temacie użytkownika Blach • Arduino i ESP
Taka co się do niej wkłada elementy, ale nawet po odłączeniu wszystkiego napięcie na linii 5V = 2,28V, więc może shield jest problemem? -
Problem z robotem zasilanym akumulatorami 18650 (nie chce wystartować)
Blach odpisał w temacie użytkownika Blach • Arduino i ESP
Zauważyłem, że występuje duży spadek napięcia na linii zasilnia płytki prototypowej (z 5V do 2,75V), do shielda sterowania silników, normalnie dochodzi napięcie 12V -
Problem z robotem zasilanym akumulatorami 18650 (nie chce wystartować)
Blach odpisał w temacie użytkownika Blach • Arduino i ESP
Wszystko zaczyna normalnie działać po podpięciu kabla USB z komputera, więc nie wiem co się dzieje, ale muszą być wtedy podpięte i akumulatory i kabel -
Problem z robotem zasilanym akumulatorami 18650 (nie chce wystartować)
Blach odpisał w temacie użytkownika Blach • Arduino i ESP
Aż taki nieogarnięty nie jestem, są naładowane, napięcie się zgadza - ok. 4V -
Problem z robotem zasilanym akumulatorami 18650 (nie chce wystartować)
Blach opublikował temat w Arduino i ESP
Witam. Pół roku temu skonstruowałem prostego robota, który miał za zadanie omijać przeszkody. Nie dawno, po dosyć długiej przerwie, uruchomiłem go na nowo i nie chciał wystartować (korzystam z trzech akumulatorów 18650). Jednak po podłączeniu przez USB do komputera, robot działa normalnie. Myślę, że jest to problem ze zbyt niskim natężeniem prądu, dlatego zamówiłem nowe akumulatory (używane, ale sprawne, pół roku temu zamówiłem te same z tego sklepu i wszystko działało). Jednak problem jest ciągle ten sam. Będę jeszcze coś kombinował, jednak zwracam się do członków forum, o pomoc. Liczę na szybką odpowiedź i pozdrawiam. -
Problem z czujnikiem nasłonecznienia BH1750 (BH1750] Device is not configured!)
Blach odpisał w temacie użytkownika Blach • Arduino i ESP
Dziękuję za szybką pomoc, czujnik działa już poprawnie po zmianie adresu i wykorzystaniu skanera I2c. -
Witam. Mam problem mianowicie czujnik nasłonecznienia BH 1750, który mam podłączony do projektu stacji pogodowej na bazie Arduino UNO nie działa poprawnie. Problem jest tym większy, że nawet w przykładzie z biblioteki tego czujnika wyświetlany jest błąd "BH1750] Device is not configured!". Szukałem na ten temat trochę w internecie, ale nie umiałem znaleźć rozwiązania tego problemu. Poniżej wklejam kod: /* Example of BH1750 library usage. This example initialises the BH1750 object using the default high resolution continuous mode and then makes a light level reading every second. Connections - VCC to 3V3 or 5V - GND to GND - SCL to SCL (A5 on Arduino Uno, Leonardo, etc or 21 on Mega and Due, on esp8266 free selectable) - SDA to SDA (A4 on Arduino Uno, Leonardo, etc or 20 on Mega and Due, on esp8266 free selectable) - ADD to (not connected) or GND ADD pin is used to set sensor I2C address. If it has voltage greater or equal to 0.7VCC voltage (e.g. you've connected it to VCC) the sensor address will be 0x5C. In other case (if ADD voltage less than 0.7 * VCC) the sensor address will be 0x23 (by default). */ #include <BH1750.h> #include <Wire.h> BH1750 lightMeter; void setup() { Serial.begin(9600); // Initialize the I2C bus (BH1750 library doesn't do this automatically) Wire.begin(); // On esp8266 you can select SCL and SDA pins using Wire.begin(D4, D3); // For Wemos / Lolin D1 Mini Pro and the Ambient Light shield use // Wire.begin(D2, D1); lightMeter.begin(); Serial.println(F("BH1750 Test begin")); } void loop() { float lux = lightMeter.readLightLevel(); Serial.print("Light: "); Serial.print(lux); Serial.println(" lx"); delay(1000); } Z góry dziękuję za odpowiedź
-
Błąd "SSD306 allocation failed" - wyświetlacz SSD1306 podłączony do arduino
Blach odpisał w temacie użytkownika Blach • Arduino i ESP
Szczerze mówiąc znalazłem w internecie przykładowy program wysyłania danych z czujnika przez moduły RF 433 i zastosowałem taki sam sposób przechowywania danych. @ethanak zobaczę czy twoje rady pomogły i wtedy napiszę, czy się udało. Edit: wywaliłem tablice i powstał w ten sposób taki kod: #include <SPI.h> #include <Wire.h> #include <VirtualWire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <Adafruit_BMP280.h> #include "DHT.h" #include <virtuabotixRTC.h> #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels #define DHTPIN 2 // Pin, do którego podłążcony jest DHT 11 #define DHTTYPE DHT11 // Typ czujnika DHT #define OLED_RESET -1 #define receive_pin 3 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); Adafruit_BMP280 bmp280; DHT dht(DHTPIN, DHTTYPE); virtuabotixRTC myRTC(6, 7, 8); struct package { float temperature = 0.0; float humidity = 0.0; float pressure = 0.0; }; typedef struct package Package; Package data; void setup() { Serial.begin(9600); dht.begin(); if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("SSD1306 allocation failed")); for(;;); // Don't proceed, loop forever } myRTC.setDS1302Time(00, 9, 15, 6, 01, 06, 2023); // Ustawienie zegara display.display(); delay(2000); display.clearDisplay(); //Wyczyszczenie ekranu vw_set_rx_pin(receive_pin); vw_setup(500); // Bits per sec vw_rx_start(); // Start the receiver PLL running } void loop() { float h = dht.readHumidity(); // Odczyt wilgotności wewnętrznej float t = dht.readTemperature(); //Odczyt temperatury wewnętrznej if (isnan(h) || isnan(t)) { Serial.println(F("Failed to read from DHT sensor!")); return; } float hic = dht.computeHeatIndex(t, h); uint8_t buf[sizeof(data)]; uint8_t buflen = sizeof(data); if (vw_have_message()) { for (int i = 0; i < 5; i++) { myRTC.updateTime(); delay(1050); display.setTextSize(2); display.setTextColor(WHITE); display.setCursor(0,0); display.print(" Data: "); display.setTextSize(2); display.println(); display.println(); display.setTextColor(WHITE); display.print(myRTC.dayofmonth); display.print("/"); display.print(myRTC.month); display.print("/"); display.print(myRTC.year); display.print(" "); display.print(myRTC.hours); display.print(":"); display.print(myRTC.minutes); display.print(":"); display.print(myRTC.seconds); display.display(); display.clearDisplay(); } delay(2000); //Odczyt temperatury wewnętrznej display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0,0); display.println("Temperatura WEW.:"); display.println(); display.setTextSize(3); display.setTextColor(WHITE); display.print(t); display.print(" C"); display.display(); display.clearDisplay(); delay(2000); //Odczyt wilgotności wewnętrznej display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0,0); display.println("Wilgotnosc WEW.:"); display.println(); display.setTextSize(3); display.setTextColor(WHITE); display.print(h); display.print(" %"); display.display(); display.clearDisplay(); delay(2000); Serial.print(F("Temperatura wew.: ")); Serial.print(t); Serial.print(F("°C Wilgotność wew.: ")); Serial.print(h); Serial.print(F("% ")); Serial.println(); vw_get_message(buf, &buflen); //Odczyty z odbiornika zewnętrznego memcpy(&data,&buf,buflen); String temperatureString = String(data.temperature,1); Serial.print(data.temperature); //Wypissanie odczytów na terminalu Serial.println(); String humidityString = String(data.humidity,1); Serial.println(data.humidity); Serial.println(); String pressureString = String(data.pressure,1); Serial.print(data.pressure); Serial.println(); display.setTextSize(1); //Odczyt temperatury zewnętrznej display.setTextColor(WHITE); display.setCursor(0,0); display.println("Teperatura ZEW.:"); display.println(); display.setTextSize(3); display.setTextColor(WHITE); display.print(data.temperature); display.print(" C"); display.display(); display.clearDisplay(); delay(2000); //Odczyt wilgotności zewnętrznej display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0,0); display.println("Wilgotnosc ZEW.:"); display.println(); display.setTextSize(3); display.setTextColor(WHITE); display.print(data.humidity); display.print(" %"); display.display(); display.clearDisplay(); delay(2000); //Odczyt ciśnienia display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0,0); display.println("Cisnienie.:"); display.println(); display.setTextSize(3); display.setTextColor(WHITE); display.print(data.pressure); display.print(" hPa"); display.display(); display.clearDisplay(); delay(2000); } } Dalej występuje dalej ten sam błąd: "SSD1306 allocation failed". Nie wiem, czy ja zrobiłem coś źle, czy to coś innego to powoduje. Niestety nie mogę dodać do mojego kodu, tego co napisał kolega @ethanak. Być może będę musiał zmienić rodzaj wyświetlacza. Proszę o szybką odpowiedź. Z góry dziękuję. Pozdrawiam- 3 odpowiedzi
-
- 1
-
-
- Arduino
- Stacja pogodowa
-
(i 1 więcej)
Tagi:
-
Mam problem. Mianowicie budując moją stację meteo na układzie Arduino Uno natknąłem się na błąd "SSD1306 allocation failed". Wywnioskowałem, że błąd ten powoduje zbyt mała ilość pamięci RAM dla wyświetlacza oraz że tą pamięć zabierają zmienne "char" wykorzystywane w moim kodzie. Program działał, gdy występowały dwie zmienne "char", teraz zaimplementowane są trzy, a mam w planach dodać jeszcze kilka. Poniżej dodaje kod całego programu modułu odbiornika stacji, do którego podłączony jest wyświetlacz. Jeżeli ktoś miałby jakieś rady co do sposobu pisanie kodu, lub zauważył w moim jakieś błędy, proszę śmiało pisać, gdyż nie jestem specem od pisania kodu. Wolę kabelki i lutownicę. Z góry dziękuję za odpowiedź. #include <SPI.h> #include <Wire.h> #include <VirtualWire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <Adafruit_BMP280.h> #include "DHT.h" #include <virtuabotixRTC.h> #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels #define DHTPIN 2 // Pin, do którego podłączony jest DHT 11 #define DHTTYPE DHT11 // Typ czujnika DHT #define OLED_RESET -1 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); Adafruit_BMP280 bmp280; DHT dht(DHTPIN, DHTTYPE); virtuabotixRTC myRTC(6, 7, 8); const int receive_pin = 3; char temperatureChar[10]; char humidityChar[10]; char pressureChar[10]; struct package { float temperature = 0.0; float humidity = 0.0; float pressure = 0.0; }; typedef struct package Package; Package data; void setup() { Serial.begin(9600); dht.begin(); if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("SSD1306 allocation failed")); for(;;); // Don't proceed, loop forever } myRTC.setDS1302Time(00, 9, 15, 6, 01, 06, 2023); // Ustawienie zegara display.display(); delay(2000); display.clearDisplay(); //Wyczyszczenie ekranu vw_set_rx_pin(receive_pin); vw_setup(500); // Bits per sec vw_rx_start(); // Start the receiver PLL running } void loop() { float h = dht.readHumidity(); // Odczyt wilgotności wewnętrznej float t = dht.readTemperature(); //Odczyt temperatury wewnętrznej if (isnan(h) || isnan(t)) { Serial.println(F("Failed to read from DHT sensor!")); return; } float hic = dht.computeHeatIndex(t, h); uint8_t buf[sizeof(data)]; uint8_t buflen = sizeof(data); if (vw_have_message()) { for (int i = 0; i < 5; i++) { myRTC.updateTime(); delay(1050); display.setTextSize(2); display.setTextColor(WHITE); display.setCursor(0,0); display.print(" Data: "); display.setTextSize(2); display.println(); display.println(); display.setTextColor(WHITE); display.print(myRTC.dayofmonth); display.print("/"); display.print(myRTC.month); display.print("/"); display.print(myRTC.year); display.print(" "); display.print(myRTC.hours); display.print(":"); display.print(myRTC.minutes); display.print(":"); display.print(myRTC.seconds); display.display(); display.clearDisplay(); } delay(2000); //Odczyt temperatury wewnętrznej display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0,0); display.println("Temperatura WEW.:"); display.println(); display.setTextSize(3); display.setTextColor(WHITE); display.print(t); display.print(" C"); display.display(); display.clearDisplay(); delay(2000); //Odczyt wilgotności wewnętrznej display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0,0); display.println("Wilgotnosc WEW.:"); display.println(); display.setTextSize(3); display.setTextColor(WHITE); display.print(h); display.print(" %"); display.display(); display.clearDisplay(); delay(2000); Serial.print(F("Temperatura wew.: ")); Serial.print(t); Serial.print(F("°C Wilgotność wew.: ")); Serial.print(h); Serial.print(F("% ")); Serial.println(); vw_get_message(buf, &buflen); //Odczyty z odbiornika zewnętrznego memcpy(&data,&buf,buflen); Serial.print(data.temperature); //Wypissanie odczytów na terminalu String temperatureString = String(data.temperature,1); temperatureString.toCharArray(temperatureChar,10); Serial.println(); Serial.println(data.humidity); String humidityString = String(data.humidity,1); humidityString.toCharArray(humidityChar,10); Serial.println(); Serial.print(data.pressure); String pressureString = String(data.pressure,1); pressureString.toCharArray(pressureChar,10); Serial.println(); display.setTextSize(1); //Odczyt temperatury zewnętrznej display.setTextColor(WHITE); display.setCursor(0,0); display.println("Teperatura ZEW.:"); display.println(); display.setTextSize(3); display.setTextColor(WHITE); display.print(data.temperature); display.print(" C"); temperatureString.toCharArray(temperatureChar,10); display.display(); display.clearDisplay(); delay(2000); //Odczyt wilgotności zewnętrznej display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0,0); display.println("Wilgotnosc ZEW.:"); display.println(); display.setTextSize(3); display.setTextColor(WHITE); display.print(data.humidity); display.print(" %"); humidityString.toCharArray(humidityChar,10); display.display(); display.clearDisplay(); delay(2000); //Odczyt ciśnienia display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0,0); display.println("Cisnienie.:"); display.println(); display.setTextSize(3); display.setTextColor(WHITE); display.print(data.pressure); display.print(" hPa"); pressureString.toCharArray(pressureChar,10); display.display(); display.clearDisplay(); delay(2000); } }
- 3 odpowiedzi
-
- 1
-
-
- Arduino
- Stacja pogodowa
-
(i 1 więcej)
Tagi:
