Fórum témák
- • Videoton RT7300S
- • Érdekességek
- • Hegesztő inverter javítás
- • Rádió tuner hiba
- • Audiofil, High End Audio
- • CNC építése házi alkatrészekből az alapoktól
- • Mosógép vezérlők és általános problémáik
- • Felajánlás, azaz ingyen elvihető
- • TV hiba, mi a megoldás?
- • Műhelyünk felszerelése, szerszámai
- • V-FET és SIT erősítő kapcsolások
- • Akkumulátor töltő
- • Muzeális készülékek-alkatrészek restaurálása
- • GSM adatátvitel
- • Aszinkron motorok tekercselése
- • Műveleti erősítő
- • Klíma szervizelés, javítás
- • Energomat mosógép
- • Villanyszerelés
- • Bluetooth kérdések
- • Alternativ HE találkozó(k)
- • Mosogatógép hiba
- • Vezeték nélküli csengő más célra
- • EL84 kimenő trafó
- • Magnetométer építése
- • Elektromágneses terek kockázatértékelése
- • MyElecParts alkatrész kereső és készlet nyilvántartó
- • Rádió áthangolása, OIRT - CCIR konverter
- • Porszívó javítás
- • Kombikazán működési hiba
- • Kapcsolóüzemű tápegység
- • Vicces - mókás történetek
- • Riasztószerelés tapasztalatok, ötletek (kizárólag haladóknak)
- • Erősítő mindig és mindig
- • Kávéfőzőgép hiba
- • Vag-com-hex interfész (kábel hibák)
- • Kamerás megfigyelőrendszer
- • Hangsugárzó építés, javítás - miértek, hogyanok
- • Mágnes
- • Szintetizátor javítás
- • Házilag építhető fémkereső
- • Villanypásztor
- • Takarítógép problémák
- • Autóelektronika
- • Kapcsolóüzemű táp 230V-ról
- • LED-es kivezérlésjelzők
- • Tranzisztorok helyettesítése
- • Adatlapot keresek
- • Elfogadnám, ha ingyen elvihető
- • VU meter probléma
- • Vásárlás, hol kapható?
- • Kaputelefon
- • Labortápegység készítése
- • Elektronyika orosz digitális órák
- • Műterhelés építése
» Több friss téma
|
A klónok CH340 Soros-USB illesztőjének drivere ( Letöltés)
Először is köszi a reagálásodat. Sok hozzászólásoddal találkozom, gondolom profi vagy. Természetese nem titkos a program, melyet mellékelek is. Ez egy 44 gombos vezérlő program része, ami megán fog futni. A részprogramokat UNO-n futtatom, még nem működnek jól.
Ha elindul a fade, már az IR jelekre sem reagál a visszajelző LED1 szerint. Ha nem indul el, akkor is blokkolja az IR jeleket. Ha egyből vele kezded, akkor a while-vel elindul és fut, csak nem lehet kilépni.
Mellékelek 3 fade programot is, melyekben nincs delay, hátha van köztük idevaló.
#include <EEPROM.h>
#include <IRremote.h>
#include "Timer.h"
Timer t;
int RECV_PIN = 8;
int R_PIN = 9;
int G_PIN = 6;
int B_PIN = 10;
int number; // a case-k létrehozásához
int periode = 5000;
int displace = 250;
int displace2 = 500;
int time = 1000; // LED1 be-ki ideje
const int LED1 = 13; // a LED1 kijelzi a time-t
int PERIOD1 = 500; // LED1 0,5 sek periódus idő
int value = 0;
int value2 = 0;
int value3 = 0;
int FFE01F; // Hátha így szereti a RECV_PIN bemenet a HEX FADER7-et
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
irrecv.enableIRIn();
pinMode(R_PIN,OUTPUT);
pinMode(G_PIN,OUTPUT);
pinMode(B_PIN,OUTPUT);
pinMode(A3,OUTPUT);
pinMode(LED1, OUTPUT);
t.oscillate(LED1, PERIOD1, HIGH);
}
void loop() {
t.update();
if ( results.value != 0xFFFFFFFF) digitalWrite(A3, !digitalRead(RECV_PIN)); // IR jel kijelzése
if (irrecv.decode(&results)) {
if (results.value != 0xFFFFFFFF) {
if (results.value == 0xFF02FD) number = 15; //Button POWER - OFF
if (results.value == 0xFF22DD) number = 17; //Button W - ON (WHITE)
if (results.value == 0xFFE01F) number = 16; //Button FADE7
irrecv.resume(); // Receive the next value
switch (number) {
case 15: //Button POWER
analogWrite(R_PIN, 0);
analogWrite(G_PIN, 0);
analogWrite(B_PIN, 0);
break;
case 17: //Button W
analogWrite(R_PIN, 255);
analogWrite(G_PIN, 255);
analogWrite(B_PIN, 255);
break;
case 16: //Button FADE7
while(number == 16) { //Ha if akkor el sem indul
if(digitalRead (LED1) == HIGH) digitalWrite(results.value, 0xFFE01F);
t.update();
time = millis();
value = 128+127*cos(2*PI/periode*(displace2-time)); //RED
value2 = 128+127*cos(1*PI/periode*(0.5*displace-time)); //GREEN
value3 = 128+127*cos(3*PI/periode*(2*displace2-time)); //BLUE
analogWrite(R_PIN, value);
analogWrite(G_PIN, value2);
analogWrite(B_PIN, value3);
// break; // Ha érvényes el sem indul
}
}
irrecv.resume(); // Fogadni a következő értéket
}
}
}
Hali!
Az emlitet hibakod engem is érdekelne mert az összes Digispark "micronucleus" bootloadernél az ajánlot fuse bitek bármelyik kombinációjával probálom feltölteni attiny85 alá mindig ezt dobja fel arduino ispvel!
De olyan szinten hogy ki zár a csip visszaállitás csak HVSP megy minden ujra probálkozás bootloader beégetésekor... A hozzászólás módosítva: Dec 30, 2016
Ez pedig fusebyte nem jol vanak konfigolva ha szerecséd van akor ki is zárt a chip....
A furcsa az volt,hogy ez a programrész nemrég még működött,most kicseréltem az 1.6-ot az 1.8 verzióra és újra simán működik.Nemrég frissített az 1.6-os,meglehet valamit elkevert.
Kicsit egyszerübben szervezném az egészet:
//#include <EEPROM.h>
#include <IRremote.h>
// Ezzel mit szeretnél megoldani?
//#include "Timer.h" // Kiszedtem, másképpen kellene csinálni!
//Timer t;
int RECV_PIN = 8;
int R_PIN = 9;
int G_PIN = 6;
int B_PIN = 10;
// Felesleges kétszer szétválogatni valamit!
//int number; // a case-k létrehozásához
int periode = 5000;
int displace = 250;
int displace2 = 500;
// Nem használunk foglalt neveket, változó névnek
// A 'time' foglalt a rendszer által, a piros szín is jelzi! Vedd észre!
int timeL = 1000; // LED1 be-ki ideje
const int LED1 = 13; // a LED1 kijelzi a time-t
// Csak a const-ansokat szoktuk csupa nagybetűvel megnevezni!
int PERIOD1 = 500; // LED1 0,5 sek periódus idő
int value = 0;
int value2 = 0;
int value3 = 0;
//int FFE01F; // Hátha így szereti a RECV_PIN bemenet a HEX FADER7-et
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
irrecv.enableIRIn();
pinMode(R_PIN,OUTPUT);
pinMode(G_PIN,OUTPUT);
pinMode(B_PIN,OUTPUT);
pinMode(A3,OUTPUT);
pinMode(LED1, OUTPUT);
//t.oscillate(LED1, PERIOD1, HIGH);
}
void loop() {
// Nemértem??
//t.update();
if (irrecv.decode(&results)) {
if (results.value != 0xFFFFFFFF) {
digitalWrite(A3, !digitalRead(RECV_PIN)); // IR jel kijelzése
// Felesleges kétszer válogatni a feladatokat!
if (results.value == 0xFF02FD){
//number = 15; //Button POWER - OFF
analogWrite(R_PIN, 0);
analogWrite(G_PIN, 0);
analogWrite(B_PIN, 0);
} // else if szerkezet gyorsabb, mert ha talált 1 igaz ágat, már nem vizsgálja a többit
else if (results.value == 0xFF22DD){
//number = 17; //Button W - ON (WHITE)
analogWrite(R_PIN, 255);
analogWrite(G_PIN, 255);
analogWrite(B_PIN, 255);
}
else if (results.value == 0xFFE01F){
//number = 16; //Button FADE7
// Ezt nem értem: 'results.value' ilyen digital pin nem létezik!
if(digitalRead (LED1) == HIGH) digitalWrite(results.value, 0xFFE01F); // digitálpin érték csak 0 vagy 1 lehet!
// Gondolom itt valamit időziteni akarsz?
//t.update();
//timeL = millis(); // Ez milliszekundumonként növekvő érték! Szerintem nem ez kellene ide.
value = 128+127*cos(2*PI/periode*(displace2-timeL)); //RED
value2 = 128+127*cos(1*PI/periode*(0.5*displace-timeL)); //GREEN
value3 = 128+127*cos(3*PI/periode*(2*displace2-timeL)); //BLUE
analogWrite(R_PIN, value);
analogWrite(G_PIN, value2);
analogWrite(B_PIN, value3);
}
irrecv.resume(); // Receive the next value
}
irrecv.resume(); // Fogadni a következő értéket
}
}
Az ídőzitési feladatot még nem értem igazán, hova szeretnéd!
Próbáld elöször csak sima várakozással megoldani. A hozzászólás módosítva: Dec 30, 2016
Most tovább gondolva, a következő változtatást így képzelem:
//#include <EEPROM.h>
#include <IRremote.h>
// Ezzel mit szeretnél megoldani?
//#include "Timer.h" // Kiszedtem, másképpen kellene csinálni!
//Timer t;
int RECV_PIN = 8;
int R_PIN = 9;
int G_PIN = 6;
int B_PIN = 10;
// Felesleges kétszer szétválogatni valamit!
int number = 0; // Fade kapcsoló
int periode = 5000;
int displace = 250;
int displace2 = 500;
// Nem használunk foglalt neveket, változó névnek
// A 'time' foglalt a rendszer által a piros szín is jelzi! Vedd észre!
int timeL = 1000; // LED1 be-ki ideje
const int LED1 = 13; // a LED1 kijelzi a time-t
int PERIOD1 = 500; // LED1 0,5 sek periódus idő
int value = 0;
int value2 = 0;
int value3 = 0;
//int FFE01F; // Hátha így szereti a RECV_PIN bemenet a HEX FADER7-et
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
irrecv.enableIRIn();
pinMode(R_PIN,OUTPUT);
pinMode(G_PIN,OUTPUT);
pinMode(B_PIN,OUTPUT);
pinMode(A3,OUTPUT);
pinMode(LED1, OUTPUT);
//t.oscillate(LED1, PERIOD1, HIGH);
}
void loop() {
// Nemértem??
//t.update();
if (irrecv.decode(&results)) {
if (results.value != 0xFFFFFFFF) {
digitalWrite(A3, !digitalRead(RECV_PIN)); // IR jel kijelzése
// Felesleges kétszer válogatni a feladatokat!
if (results.value == 0xFF02FD){
number = 0; //Fade Ki
analogWrite(R_PIN, 0);
analogWrite(G_PIN, 0);
analogWrite(B_PIN, 0);
} // else if szerkezet gyorsabb, mert ha talált 1 igaz ágat, már nem vizsgálja a többit
else if (results.value == 0xFF22DD){
number = 0; // Fade Ki
analogWrite(R_PIN, 255);
analogWrite(G_PIN, 255);
analogWrite(B_PIN, 255);
}
else if (results.value == 0xFFE01F){
number = 1; // Fade Be
// Ezt a vezérlést kirakjuk hogy minden ciklusban lefusson ha bekapcsoltuk
}
irrecv.resume(); // Receive the next value
}
irrecv.resume(); // Fogadni a következő értéket
}
if(number == 1){ // Fade időzítését itt oldmeg!
// Ezt nem értem: 'results.value' ilyen digital pin nem létezik!
if(digitalRead (LED1) == HIGH) digitalWrite(results.value, 0xFFE01F); // digitálpin érték csak 0 vagy 1 lehet!
// Gondolom itt valamit időziteni akarsz?
//t.update();
//timeL = millis(); // Ez milliszekundumonként növekvő érték! Szerintem nem ez kellene ide.
value = 128+127*cos(2*PI/periode*(displace2-timeL)); //RED
value2 = 128+127*cos(1*PI/periode*(0.5*displace-timeL)); //GREEN
value3 = 128+127*cos(3*PI/periode*(2*displace2-timeL)); //BLUE
analogWrite(R_PIN, value);
analogWrite(G_PIN, value2);
analogWrite(B_PIN, value3);
}
}
És most megpróbáljuk megoldani a Fade ídőzítését:
//#include <EEPROM.h>
#include <IRremote.h>
// Ezzel mit szeretnél megoldani?
//#include "Timer.h" // Kiszedtem, másképpen kellene csinálni!
//Timer t;
int RECV_PIN = 8;
int R_PIN = 9;
int G_PIN = 6;
int B_PIN = 10;
// Felesleges kétszer szétválogatni valamit!
int number; // Fade kapcsoló
int periode = 5000;
int displace = 250;
int displace2 = 500;
// Nem használunk foglalt neveket, változó névnek
// A 'time' foglalt a rendszer által a piros szín is jelzi! Vedd észre!
int timeL = 1000; // LED1 be-ki ideje
const int LED1 = 13; // a LED1 kijelzi a time-t
int PERIOD1 = 500; // LED1 0,5 sek periódus idő
int value = 0;
int value2 = 0;
int value3 = 0;
//int FFE01F; // Hátha így szereti a RECV_PIN bemenet a HEX FADER7-et
unsigned long FADER7 = 0x000008FF; // ? Ennyi millis enként léptetünk
unsigned long fader = 0; // A következő léptetés idelye
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
irrecv.enableIRIn();
pinMode(R_PIN,OUTPUT);
pinMode(G_PIN,OUTPUT);
pinMode(B_PIN,OUTPUT);
pinMode(A3,OUTPUT);
pinMode(LED1, OUTPUT);
//t.oscillate(LED1, PERIOD1, HIGH);
}
void loop() {
// Nemértem??
//t.update();
if (irrecv.decode(&results)) {
if (results.value != 0xFFFFFFFF) {
digitalWrite(A3, !digitalRead(RECV_PIN)); // IR jel kijelzése
// Felesleges kétszer válogatni a feladatokat!
if (results.value == 0xFF02FD){
number = 0; //Fade Ki
analogWrite(R_PIN, 0);
analogWrite(G_PIN, 0);
analogWrite(B_PIN, 0);
} // else if szerkezet gyorsabb, mert ha talált 1 igaz ágat, már nem vizsgálja a többit
else if (results.value == 0xFF22DD){
number = 0; // Fade Ki
analogWrite(R_PIN, 255);
analogWrite(G_PIN, 255);
analogWrite(B_PIN, 255);
}
else if (results.value == 0xFFE01F){
number = 1; // Fade Be
fader = millis() + FADER7; // Beállitjuk a ciklus időzítést
// Ezt a vezérlést kirakjuk hogy minden ciklusban lefusson ha bekapcsoltuk
}
irrecv.resume(); // Receive the next value
}
irrecv.resume(); // Fogadni a következő értéket
}
if(number == 1){ // Fade időzítését itt oldmeg!
// Ezt nem értem: 'results.value' ilyen digital pin nem létezik!
//if(digitalRead (LED1) == HIGH) digitalWrite(results.value, 0xFFE01F); // digitálpin érték csak 0 vagy 1 lehet!
// Gondolom itt valamit időziteni akarsz?
//t.update();
//timeL = millis(); // Ez milliszekundumonként növekvő érték! Szerintem nem ez kellene ide.
if(millis() > fader){
timeL++; // Ez meddig nőhet?? valami htárt kellene neki szabni
value = 128+127*cos(2*PI/periode*(displace2-timeL)); //RED
value2 = 128+127*cos(1*PI/periode*(0.5*displace-timeL)); //GREEN
value3 = 128+127*cos(3*PI/periode*(2*displace2-timeL)); //BLUE
analogWrite(R_PIN, value);
analogWrite(G_PIN, value2);
analogWrite(B_PIN, value3);
fader = millis() + FADER7; // Beállitjuk a következő ciklus időzítést
}
}
}
Na, jól tele szemeteltem az oldalt!
Remélem, boldogulsz vele? A hozzászólás módosítva: Dec 30, 2016
kapu48-nak
Köszönöm a pozitív hozzáállásodat és válaszolnék néhány kérdésedre.
Az #include "Timer.h"
Timer t;
int timer = 1000; // LED1 be-ki ideje
const int LED1 = 13; // a LED1 kijelzi a time-t
int PERIOD1 = 500;
t.oscillate(LED1, PERIOD1, HIGH);
villogtatja a LED1-et ha fut a t.update(); Az egész Timer.h azért volt, mert ha nyomogattam a FADE7 gombot az RGB mutatta hol jár most és én a LED1 állapotával akartam imitálni a gombnyomásokat.
Ezzel, hogy if(digitalRead (LED1) == HIGH) digitalWrite(results.value, 0xFFE01F); LED1 állapotával akartam imitálni a gombnyomásokat, de így is megpróbáltam
if(digitalRead (LED1) == HIGH) results.value = 0xFFE01F; de így sem működött.
Sajnos a küldött az előző kettő változatból egyikkel sem indul el a fade.
Máe dolgozom egy új összefésülésén #include <LEDFader.h> -val.
Sajnos nem tudom hol találtad ezt?: #include <LEDFader.h> -val.
Ezért nem is értem miröl beszélsz?
Viszont az utolsó progrmomnak már csinálnia kellene valamit!
Az elöző kettő pedig azért volt, hogy értsed a levezetést!
Ez pedig teljesen értelmetlen valami: digitalWrite(results.value, 0xFFE01F); A hozzászólás módosítva: Dec 30, 2016
(#) |
mps hozzászólása |
Dec 30, 2016 |
 |
/ |
 |
|
Sziasztok! Egyszercsak elkezdte a program feltöltése helyett ezt a hibaüzenetet írni: Idézet: „avrdude: no programmer has been specified on the command line or the config file
Specify a programmer using the -c option and try again”
Több panellal is ezt teszi. Csak ismerkedem az arduinoval, segítsetek mit tegyek ilyenkor?! Köszönöm előre is!
Sziasztok,
Az Arduino Duemilanove-ban az ATmega328-at sikerült hazavágjam fordított táppal.
Egy új ATmega8L-be beleírtam a bootloadert, kicseréltem a 16MHz-es kvarcot 8 MHz-re (mert az ATmega8L max. 8Mhz-es kvarcot bír meg, ezt a datasheetjében is írja), feltöltöttem rá a példaprogramokból a Blink-et, de valamiért 1 másodperc helyett 2 másodpercet ég a led, 2 másodpercet nem ég.
A boards.txt-ben probáltam átírni a 16000000Hz-et 8000000Hz-re, de nem változott, a fusebitekhez nem nyúltam.
Ez van a boards.txt-ben:
##############################################################
atmegang.name=Arduino NG or older
atmegang.upload.tool=avrdude
atmegang.upload.protocol=arduino
atmegang.upload.speed=19200
atmegang.bootloader.tool=avrdude
atmegang.bootloader.unlock_bits=0x3F
atmegang.bootloader.lock_bits=0x0F
atmegang.build.mcu=atmegang
atmegang.build.f_cpu=8000000L
atmegang.build.board=AVR_NG
atmegang.build.core=arduino
atmegang.build.variant=standard
## --------------------------------
atmegang. menu. cpu. atmega168. upload. maximum_size= 14336
atmegang. menu. cpu. atmega168. upload. maximum_data_size= 1024
atmegang. menu. cpu. atmega168. bootloader. low_fuses= 0xff
atmegang. menu. cpu. atmega168. bootloader. high_fuses= 0xdd
atmegang. menu. cpu. atmega168. bootloader. extended_fuses= 0x00
atmegang. menu. cpu. atmega168. bootloader. file=atmega/ATmegaBOOT_168_ng. hex
## ------------------------------
atmegang. menu. cpu. atmega8. upload. maximum_size= 7168
atmegang. menu. cpu. atmega8. upload. maximum_data_size= 1024
atmegang. menu. cpu. atmega8. bootloader. low_fuses= 0xdf
atmegang. menu. cpu. atmega8. bootloader. high_fuses= 0xca
atmegang. menu. cpu. atmega8. bootloader. extended_fuses=
atmegang. menu. cpu. atmega8. bootloader. file= atmega8/ATmegaBOOT-prod-firmware- 2009- 11-07. hex
##############################################################
Szerintetek miért lassabb a kelleténél?
A választ előre is köszönöm!
Az nem lehet, hogy másik board paramétereit írtad át?
Nem ezt kellene:
##############################################################
diecimila.name=Arduino Duemilanove or Diecimila
Én az atmegang.name=Arduino NG or older-t írtam át, ezt választottam ki az IDE-ben is.
Szerintem a Duemilanove-vel nincsen dolgom, mert abban csak ATmega 168 és 328 van, nincsen ATmega8.
Akkor passz. Azért próbáld meg átírni máshol is, egy próbát megér.
Nekem egy programfrissítés alkalmával lecserélte az avrdude és társait is, és a programfeltöltés nem működött sehogy. Vissza kellett piszkálnom más mappákból egy régebbi dude-t, és visszaállt a rend.
Köszi! Megnézem, mintha lenne egy régi vinyón.
Üdv!
Van az Arduino Mega 2560-as mikrokontrolleremhez egy 3.5"-es tft-m.
Letöltöttem hozzá a következő könyvtárakat:
Adafruit_GFX
Mcufriend_kbv.
Minden jó is lenne, mindent kiír, de a színkezelésnél probléma van, mert minden színnek az invertált(ellenkező) színpárjával írja ki a dolgokat.
Pl: setColor(255,0,0)= piros eredetileg=>türkizkékkel írja ki.
Mi a probléma?
Lehet, hogy nem jó chippre van definiálva a program, mert nem tudom, hogy hogyan kell kiolvasni a chip driverjét ezért hagytam úgy, ahogy az eredeti programkódban volt.
Köszönöm!
Szerintem ez van rajta: Chipset: ILI9481 (R61581, CTE32HR), A hozzászólás módosítva: Dec 31, 2016
Üdv újra!
Most más témában lenne kérdésem:
Van egy AC dimmerem(lámpából). Van benne egy triak: bta08 600b. Egy potméterrel lehet állítani a fényerejét. Hogyan lehetne úgy átalakítani, hogy ne potméterrel lehessen állítani a fényerőt, hanem az arduino pwm pinjével?
A kapcsoló a nyákon egy másik izzó köréhez tartozik.
Köszönöm! A hozzászólás módosítva: Dec 31, 2016
Szerintem a legegyszerűbb és legbiztonságosabb egy optotriac vezérlő ledjét PWM-ről működtetni.
A neten rengeteg kapcsolás van 230V-ra, annyi különbséggel, hogy a ledet az arduino kapcsolja.
Az AVR-ek gyárilag belső 8Mhz oscilátorrol járnak, és a fuse: div8 bevan kapcsolva, ezért alapból 1Mhz-vel ketyegnek!
Mindenféleképen kellene fuse biteket állítanod.
Ez a kapcsolás megfelel?
És akkor a potit simán kiforrasztom és a helyét figyelmen kívül hagyom? Egy MOC 3021-es optotriac megfelel a bta08 600 b triac-hoz?
Ennyire nem egyszerű. A PWM (inkább bekapcsoló) jelet szinkronizálni kell a hálózat frekvenciájával. Nullátmenetes triak szóba sem jöhet, mert az nullátmenetnél kapcsol be és ki.
Vagy inkább csinálok egy új nyákot a kép szerint, zavarszűrő nélkül?
LCD Szin mélység 16 bit, Szinenként felosztva: R:5bit, G:6bit, B:5bit.
Ezért a max színértékek csak lehetnek: R:31, G:63, B:31
Ha nagyobb értéket adszmeg? Átlóg a szomszédos szinbe. A hozzászólás módosítva: Dec 31, 2016
Köszönöm a rengeteg segítséget!
Köszönöm a válaszod!
Bontottam ATmega328-at, arra felírtam a bootloadert, azzal tökéletesen müködik.
Ettől függetlenül jövőben megprobálom az ATmega8-ban kikapcsolni.
|
|