Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   534 / 852
(#) ronin75 válasza JoeA hozzászólására (») Máj 25, 2019 /
 
Tudok olvasni, de te kérdeztèl

Zaza99: ha rádugod a gépedre, usb-keresztül felismeri?
(#) zaza99 válasza ronin75 hozzászólására (») Máj 25, 2019 /
 
Igen, felismeri a soros portot rajta./CH340 telepítve/ Az arduino 1.8.8 program ezt írja az alaplapra:
BN: Ismeretlen alaplap
VID: 1A86
PID: 7523
SN: Tölts fel bármilyen vázlatot, hogy kinyerhesd

Végigforrasztottam a két ic-t rajta, de nem segített.

Blinkre ez az üzenet jön:

Arduino: 1.8.8 (Windows 10), Alaplap:"Arduino Nano, ATmega328P-57600"

Vázlat használ 930 bájt (3%) -ot a program tárhelyből. A maximum 30720 bájt.
A globális változók 9 bájt (0%)-ot használnak a dinamikus memóriából, 2039 bájtot hagyva a helyi változóknak. A maximum 2048 bájt.
avrdude: verification error, first mismatch at byte 0x0002
0xc3 != 0x5c
avrdude: verification error; content mismatch
avrdude: verification error; content mismatch
A hozzászólás módosítva: Máj 25, 2019
(#) JoeA válasza ronin75 hozzászólására (») Máj 25, 2019 /
 
Igaz!
Amit furcsállok, hogy az általa feltöltött txt-ben az első próbálkozásnál még
  1. avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x43
hibajelzés volt, majd ugyan ebben a fájlban a következő (old bootloader) kísérlet óta dobja a verification error; content mismatch hibákat sorra.
A hozzászólás módosítva: Máj 25, 2019
(#) Kovidivi válasza zaza99 hozzászólására (») Máj 25, 2019 /
 
Arduino 1.8.8-cal próbáld meg. Ott még nincs ez a variálás az új bootloaderrel.
Ha sikerült a blink feltöltése, akkor az avrdude, ami a Arduino része, az is rendesen működik, tehát a műszeremnek a progija is fel fog menni a Xloaderrel (mondjuk annak egyéni avrdude-ja van a mappájában). Most próbáltam, működik az Xloaderes feltöltés (legalábbis nálam).
A hozzászólás módosítva: Máj 25, 2019
(#) zaza99 válasza Kovidivi hozzászólására (») Máj 25, 2019 /
 
1.8.8 van fent
(#) Kovidivi válasza zaza99 hozzászólására (») Máj 25, 2019 /
 
Belekóstoltam én is kicsit a témába. Két Arduino nano közül az egyikre minden gond nélkül felmegy a program Xloaderrel, a másikra nem (vagyis upload failed-et kapok) (ugyanúgy villognak az RX TX LED-ek). Az pipás a jó, az X-es a rossz...
Átnézem pontosan, mikor mit csinál, nálam is szórakozik most...
A hozzászólás módosítva: Máj 25, 2019
(#) JoeA válasza Kovidivi hozzászólására (») Máj 25, 2019 /
 
Nekem a felső verzió van és eddig sosem próbáltam cli-ből feltölteni, de mivel linux alatt nem megy az XLoader, kipróbáltam azt a parancsot amit kb. kiadhat.
  1. avrdude -v -patmega328p -Uflash:w:Blink.ino.eightanaloginputs.hex:i -carduino -b 57600 -P /dev/ttyUSB0

Ezzel simán, elsőre gond nélkül felment. Az exportált hex mellett van egy másik is, ami bootloadert is tartalmaz. Lehet, hogy az segíthetne zaza99-nek, de mivel nem ismerem a win-t, csak kérdezem, hogy ilyesmi parancssoros feltöltés nincs windows alatt valami módon? Hátha menne!
(#) Kovidivi válasza Kovidivi hozzászólására (») Máj 25, 2019 /
 
Meg van a hiba.
Valószínűleg az oldalamról letölthető 1.12-es program bootloader nélküli verzió... Ha lesz időm, összehasonlítom a fájlok méretét, de nagyon valószínű ez a baj. Az XLoader pedig hibát ír ki, pedig a program fent a nanon! Kipróbáltam. Először blink a nanora, ment. Xloaderrel a progi rá, failed üzenet, de a műszerbe rakva megy minden hiba nélkül. Innentől Arduino nem látja.
A megoldás az lesz, hogy rakj fel egy bootloadert a nano-ra egy másik Arduino Uno/nano/mini pro segítségével, én pedig szólok, ha a bootloaderes .hex fájlok fent lesznek az oldalamon. A jó hír, hogy a nano használható így is, elvégzi a dolgát tökéletesen, csak a frissítés nem lesz megoldható USB-n keresztül (csak ISP-n). Utána járok, hogy mi lehet a baj, esetleg az Xloader nincs felkészítve a bootloaderes .hex fájlokra, vagy én raktam fel hibás .hex fájlt az oldalamra? Majd kiderül...
(#) Kovidivi válasza Kovidivi hozzászólására (») Máj 25, 2019 /
 
Bootloaderes verzió van fent az oldalamon, ez 99.9% biztos. Egyrészt a méretéből (egy picit újabb verziós, minimális módosításokkal: bootloaderes: 88620 byte, nélküle 85117 byte, ami az oldalamon van: 88544 byte), másrészt tudom, hogy mekkora szivatás lenne, ha bootloader nélküli .hex-et raknék fel... Utána kell néznem, az Xloader miért problémázik a bootloaderes-es .hex-ekkel. További érdekesség, hogy eddig mindig feltöltés sikeres üzenet fogadott, most meg nem. Ezért jobb, ha az ilyen hibák már nálam kibuknak, és nem az utánépítőnek kell vele szívnia.
A hozzászólás módosítva: Máj 25, 2019
(#) ronin75 válasza zaza99 hozzászólására (») Máj 25, 2019 /
 
Utána olvasgatva, nem találtam egyértelmű megoldást. Ha usb-n felismerszik, akkor a CH340 jó a panelen.
- próbàld meg a reset gomb nyomvatartása közben megnyomni a feltöltést
- bootloadert újratölteni.
(#) Kovidivi válasza Kovidivi hozzászólására (») Máj 25, 2019 /
 
Tele van a net ezzel a hibával. Az Xloader felülírja a bootloadert Na most már ezt is tudjuk... Sajnálom a történteket.
(#) ronin75 válasza Kovidivi hozzászólására (») Máj 25, 2019 /
 
Most ha jól értem, akkor a te programodat szeretnè feltölteni? Az XLoader logikusan írja felül a bootloadert, hisz pont erre lett kitalálva, hogy hexeket lehessen feltölteni.
(#) Kovidivi válasza Kovidivi hozzászólására (») Máj 25, 2019 /
 
Még egyszer utoljára kipróbáltam. Nano-ra IDE alól a blink feltöltve, 3mp-es villogással, ok. Az IDE alól generálva egy bootloaderes blink .hex-et, 1mp villogással, majd ezt feltöltve Xloaderrel: failed, de a program a nanon van. Ezután az Arduino nem éri el a nanot, DE! az Xloader feltölti a programot, bármelyiket, viszont failed-del tér vissza. A program viszont a nanon lesz.... Tehát a failed nem is failed, de az Arduino IDE-től le lesz választva a nano. Még ilyet... Sőt: a műszer programjára feltöltés sikerest dob, a blinkre failed-et. Egy sikeres feltöltés után ismét látja az Arduino IDE a nanot... De nem mindig! Mindig old bootloadert használtam. Ez egy nagyon megbízhatatlan dolog...
(#) Kovidivi válasza ronin75 hozzászólására (») Máj 25, 2019 /
 
Igen, erre való, csak valami mégsem stimmel. Vagy az Arduino bootloadere lett kicsit megvariálva, vagy az Xloaderrel vannak gondom, nem tudom.
(#) zaza99 válasza Kovidivi hozzászólására (») Máj 25, 2019 /
 
Köszönöm mindenkinek a segítséget!
(#) ronin75 válasza zaza99 hozzászólására (») Máj 25, 2019 /
 
Megoldódott? Hogyan?
(#) zaza99 válasza ronin75 hozzászólására (») Máj 25, 2019 /
 
Még Kovidivi nem találta meg a megoldást, de az kiderült, hogy a program ami nekem kell az felmegy a hiba ellenére is a nanoba.
(#) zsolt58 hozzászólása Máj 26, 2019 /
 
Szep vasárnap délutánt mindenkinek.
Tegnap be szereltem egy dobozba I2C-s LCD-t amit arduinoval hajtom.
Na most szerecsére sikerült fejjel lefelé be raknom.
Van olyan lehetöség vagy parancs arudinoon belül amivel meg tudnám forditani az irást. Köszönöm.
Arra már gondoltam, hogy fejjel lefelé irom be a programba a szavakat de számokat is ir ki amit mér egy szenzor azt pedig nem tudom, hogy lehetne megoldani.
Üdv.
(#) Bakman válasza zsolt58 hozzászólására (») Máj 26, 2019 /
 
Nincs rá lehetőség, a kijelző fix karakterkészlettel rendelkezik. Nyolc egyedi karaktert lehet megadni de nagy valószínűséggel az kevés lesz neked.

Hogyan gondoltad a fejjel lefelé beírást?
(#) zsolt58 válasza Bakman hozzászólására (») Máj 26, 2019 /
 
(: ˙ɯɐʇlopuoƃ ʎƃI
(#) Bakman válasza zsolt58 hozzászólására (») Máj 26, 2019 /
 
Próbáld ki élesben is, kíváncsi vagyok az eredményre.
(#) Kovidivi válasza zsolt58 hozzászólására (») Máj 26, 2019 / 1
 
Ezek a karakterek nincsenek benne az LCD karakterkészletében...
Csak 8 egyéni karaktert tudsz definiálni, tehát ennyi különböző jelenhet meg, plusz ami a karakterkészletben is megtalálható, ha passzol neked. Google: lcd 1602 char set
(#) Pulyka hozzászólása Máj 26, 2019 /
 
Üdvözletem.

Hétvégén összeraktam egy saját 7 szegmenses kijelző vezérlőt, elindul a program, de nem megbízható,(néha újraindul, olykor lép egyet) biztos van neki valamilyen baja, pedig az arduino IDE nem jelzett hibát, és fel is töltötte.
Kezdőnek mondanám magam, de pár dolgot már elkészítettem.(31 éves leszek, van időm tanulni. )

Tudom, vannak ennél egyszerűbb kódok, de én a pillanatnyi szegmens kijelzéshez illesztettem egy LED-et (ledPin8), ami csak a 4-es kijelzésnél világít.
A cikkben szereplő kód az eredeti, azt gondoltam tovább, és az tökéletesen működik.

..és a kérdés:
Jól csináltam?

Idézet:

// https://www.mekanizmalar.com/arduino-five-led-control-in-sequence-w...n.html
// 2015/03/29
/*

Utolsó módosítás:2019.05.25.
Demonstrates the use of an array to hold pin numbers.
Each time the push button is pressed, next LED in the
sequence will be turned on while the rest of LEDs are off.
*/
const int buttonPin = 2;
const int ledPin1 = 8; //a
const int ledPin2 = 7; //b
const int ledPin3 = 4; //c
const int ledPin4 = 5; //d
const int ledPin5 = 6; //e
const int ledPin6 = 9; //f
const int ledPin7 = 10; //g
const int ledPin8 = 3; //Beállított LED kijelzés
int buttonState = 0; // variable for reading the pushbutton status
int buttonPressCount = 0;
int numberOfLED = 10;

void setup() {
// initialize the LED pin as an output:
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(ledPin5, OUTPUT);
pinMode(ledPin6, OUTPUT);
pinMode(ledPin7, OUTPUT);
pinMode(ledPin8, OUTPUT);

// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);

}

void loop() {
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH)

{
if (buttonPressCount % numberOfLED == 0)
{digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin4, HIGH);
digitalWrite(ledPin5, HIGH);
digitalWrite(ledPin6, HIGH);
digitalWrite(ledPin7, LOW);
digitalWrite(ledPin8, LOW);}

if (buttonPressCount % numberOfLED == 1)
{digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin5, LOW);
digitalWrite(ledPin6, LOW);
digitalWrite(ledPin7, LOW);
digitalWrite(ledPin8, LOW);}

if (buttonPressCount % numberOfLED == 2)
{digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, HIGH);
digitalWrite(ledPin5, HIGH);
digitalWrite(ledPin6, LOW);
digitalWrite(ledPin7, HIGH);
digitalWrite(ledPin8, LOW);}

if (buttonPressCount % numberOfLED == 3)
{digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin4, HIGH);
digitalWrite(ledPin5, LOW);
digitalWrite(ledPin6, LOW);
digitalWrite(ledPin7, LOW);
digitalWrite(ledPin8, LOW);}

if (buttonPressCount % numberOfLED == 4)
{digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin5, LOW);
digitalWrite(ledPin6, HIGH);
digitalWrite(ledPin7, HIGH);
digitalWrite(ledPin8, HIGH);}

if (buttonPressCount % numberOfLED == 5)
{digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin4, HIGH);
digitalWrite(ledPin5, LOW);
digitalWrite(ledPin6, HIGH);
digitalWrite(ledPin7, HIGH);
digitalWrite(ledPin8, LOW);}

if (buttonPressCount % numberOfLED == 6)
{digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin4, HIGH);
digitalWrite(ledPin5, HIGH);
digitalWrite(ledPin6, HIGH);
digitalWrite(ledPin7, HIGH);
digitalWrite(ledPin8, LOW);}

if (buttonPressCount % numberOfLED == 7)
{digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin5, LOW);
digitalWrite(ledPin6, LOW);
digitalWrite(ledPin7, LOW);
digitalWrite(ledPin8, LOW);}

if (buttonPressCount % numberOfLED == 8)
{digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin4, HIGH);
digitalWrite(ledPin5, HIGH);
digitalWrite(ledPin6, HIGH);
digitalWrite(ledPin7, LOW);
digitalWrite(ledPin8, LOW);}

if (buttonPressCount % numberOfLED == 9)
{digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin4, HIGH);
digitalWrite(ledPin5, LOW);
digitalWrite(ledPin6, HIGH);
digitalWrite(ledPin7, HIGH);
digitalWrite(ledPin8, LOW);}


buttonPressCount++;
delay(500);
}
}”


Köszi előre is.
A hozzászólás módosítva: Máj 26, 2019
(#) Kovidivi hozzászólása Máj 26, 2019 /
 
Sziasztok.
Azt tudja valaki, hogy ha egy signed long negatív számot egy unsigned long -gal osztok el, miért kapok hibás eredményt?
Pici program, Serial.print-tel kiíratva:
  1. signed long a=-200;
  2.  unsigned long b=10;
  3.  signed long c=a/b;
  4.  signed long d=a/(signed long)(b);
  5.  Serial.println(c);
  6.  Serial.println(d);


Eredmény:
  1. 429496709
  2. -20

Az első természetesen hibás, a második helyes. Miért van ez? Köszi.
A hozzászólás módosítva: Máj 26, 2019
(#) vargham válasza Kovidivi hozzászólására (») Máj 26, 2019 /
 
Bővebben: Compiler explorer

Hasonlítsd össze, melyik mivé fordul.
(#) Kovidivi válasza vargham hozzászólására (») Máj 26, 2019 /
 
Assembly nyelven nem értek. A logika érdekelne elsősorban, hogy ilyenkor a signed long át lesz kasztolva unsigned long-gá? Vagy miért nem a signed long-ból készít a fordító unsigned long-ot? Mi határozza meg? Ha egy osztásban az egyik tag signed, nem hagyhatja csak úgy el az előjelet a fordító, teljesen logikátlan.
(#) vargham válasza Kovidivi hozzászólására (») Máj 26, 2019 / 1
 
A C és C++ nyelvben van egy halom szabály, hogy mit mivé castol automatikusan. Ezeket minden áron el kell kerülni, pont az ilyen hibák miatt. Érdemes megszokni, hogy te magad kasztolsz minden esetben. Akkor egyértelmű, hogy miből mi lesz.

Bővebben: Mixed type
(#) vargham válasza Kovidivi hozzászólására (») Máj 26, 2019 /
 
Idézet:
„nem hagyhatja csak úgy el az előjelet a fordító, teljesen logikátlan”

A fordító úgy működik, ahogy a szabványban le van írva.
(#) Kovidivi válasza vargham hozzászólására (») Máj 26, 2019 /
 
Köszi. A link hasznos volt! Tehát mixed types a megfelelő keresőszó, ha a későbbiekben ismét előkerül hasonló probléma.
(#) kapu48 válasza Pulyka hozzászólására (») Máj 26, 2019 /
 
Én arra gyanakszok, hogy osztás hiba fordul elő mikor az előjeles:
int buttonPressCount++; Átlépi a határt 32768-nál átfordul negatív értékbe
-1 % 10 = -0,1 Ezt vajon hogyan kezeli az arduinó?

Biztosabb lenne ha unsigned intnek deklarálnád az osztandót!
Következő: »»   534 / 852
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem