Fórum témák
- • Kapcsolási rajzot keresek
- • Multiméter - miért, milyet?
- • Erősítő mindig és mindig
- • Audiofil, High End Audio
- • Klíma beszerelése, fűtés-hűtés házilag
- • WLAN router
- • Felajánlás, azaz ingyen elvihető
- • Telefon és LAN hálózat kialakítása
- • Fejhallgató erősítő
- • Leválasztó transzformátor
- • Garázskapu mozgató
- • Érdekességek
- • PIC - Miértek, hogyanok haladóknak
- • Kombikazán működési hiba
- • Villanymotor bekötése
- • DSC riasztó
- • Gázkazán vezérlő hibák
- • Fényorgona
- • Ki hol gyártatja a NYÁK-ot ?
- • Napelem alkalmazása a lakás energia ellátásában
- • Labortápegység készítése
- • HDMI bekötés
- • Indukciós főzőlap javítása
- • Vásárlás, hol kapható?
- • Erősítő építése elejétől a végéig
- • Elfogadnám, ha ingyen elvihető
- • Háromfázisú aggregátor
- • Villanyszerelés
- • Riasztószerelés tapasztalatok, ötletek (kizárólag haladóknak)
- • Codefon kaputelefon
- • Kávéfőzőgép hiba
- • Házilag építhető fémkereső
- • Skoda Octavia elektromos probléma
- • LCD TV probléma
- • TV hiba, mi a megoldás?
- • Muzeális készülékek-alkatrészek restaurálása
- • Radiosonde
- • Oszcilloszkóp vétel, mit gondoltok?
- • Rádióamatőrök topikja
- • Bojler javítása, kérdések
- • Folyamatábrás mikrokontroller programozás Flowcode-dal
- • Westen 240 Fi gázkazán hiba
- • Szünetmentes táp javítása, élesztése
- • Klíma szervizelés, javítás
- • Nyomtató probléma
- • Szobatermosztát bekötése
- • Tina
- • Lemezjátszó beállítása, javítása
- • Padlófűtés vezérlés
- • Li-Po - Li-ion akkumulátor és töltője
- • Tápegységgel kapcsolatos kérdések
- • Autórádió (fejegység) problémák, kérdések, válaszok
- • Sonoff kapcsolók informatikai háttere (rendszer topológia)
- • EAGLE NYÁK tervező
- • SONY TA-F 590ES MOSFET végfok átalakítása
» Több friss téma
|
A klónok CH340 Soros-USB illesztőjének drivere ( Letöltés)
Köszönöm. Ma egész nap dolgozom. Csak holnap tudom tesztelni. Jelentkezni fogok.
Köszi! Megnéztem így, a programba beültetés nélkül, de a ki-be kapcsolás nem megy. A PWM vezérlés az igen.
Köszönöm még egyszer mindenkinek!
Pedig kéne neki. A végére tegyél egy 100 msed delay-t, és utána irasd ki mindhárom ledre ezt:
if (ledEnabled1){ Serial.println("led 1 enabled");}
Ezt nem értem: "a programba beültetés nélkül"
Úgy értettem, hogy nem másoltam be az egész programba. De azóta beillesztettem, és megnéztem a soros monitoron: led 1 enabled
led 2 enabled
led 3 enabled
led 1 enabled
led 2 enabled
led 3 enabled
led 1 enabled
led 2 enabled
led 3 enabled
Ott folyamatosan írja a fentit. Hiába nyomom a gombot.
Hello. Az Excel táblázatban van 3-3 teszt, az új kóddal.
Az eddigi teszteléseket a led-szalag vezérlővel csináltam, hogy legyen összehasonlítási alap, a RCswitch-el készített eredménnyel.
Viszont most kipróbáltam a kapásjelzővel is, és érdekesen alakult a teszt. (A régi kóddal is ugyanez az eredmény).
Érdeklődnék, hogyan lehet a kapásjelző RF jelét a hangkártya segítségével, megjeleníteni?
És a 3 nyomógomb az 5-6-7 pin-ek és a GND közé vannak kötve?
A setup()-ban ezekre a lábakra INPUT_PULLUP van beálltva?
Szedd ki a végéről a serial kiiratást, és cseréld ki az erre a fenti sorokat.
// read the buttons
if (LOW == buttonPin1){
Serial.println("button 1");
ledEnabled1 = !ledEnabled1;}
if (LOW == buttonPin2){
Serial.println("button 2");
ledEnabled2 = !ledEnabled2;}
if (LOW == buttonPin3){
Serial.println("button 3");
ledEnabled3 = !ledEnabled3;}
Szerk: mekkora láma vagyok...
Helyesen:
if (LOW == digitalRead(buttonPin1)){
Serial.println("button 1");
ledEnabled1 = !ledEnabled1;}
if (LOW == digitalRead(buttonPin2)){
Serial.println("button 2");
ledEnabled2 = !ledEnabled2;}
if (LOW == digitalRead(buttonPin3)){
Serial.println("button 3");
ledEnabled3 = !ledEnabled3;}
Nem csoda hogy nem ment, nem is olvasta ki a kód az értékét, csak a pin számát hasonlította össze a LOW-val, ami ugye a 0. Ez meg sose teljesül A hozzászólás módosítva: Márc 14, 2018
Igen így vannak beállítva a lábak:
pinMode(buttonPin1, INPUT_PULLUP);
pinMode(buttonPin2, INPUT_PULLUP);
pinMode(buttonPin3, INPUT_PULLUP);
A helyes kódot beírva is ugyan az a helyzet, hogy folyamatosan írja a fenti sorokat.
Felhúzó ellenállással is, és nélküle is.
Szerintem mindkét állapotot ki kellene íratni, hogy érzékeljétek a változást!
if (ledEnabled1){
Serial.println("led 1 enabled");
}else{
Serial.println("led 1 disabled");
}
rakd fel az egész kódot légyszi
Valóban, de tegnap este nem szúrta ki a szememet, hogy ezt a részt valahogy kitöröltem a kommentből...
Bár a legutóbbi iterációban a gombnyomás érzékelésére koncentrálok.
Egész kódot felesleges, mert azokban az lcd Init, RTC, és DS18B20nak a kódjai vannak.
Érdekes, Kapu módosítását megcsinálva jó. A hozzászólás módosítva: Márc 14, 2018
Nem értem az anomáliát, mert csak beírtam kapu kódát is a kódba, és jó lett a kapcsolás is. Mást pedig nem változtattam.
Mindkettőtöknek köszönöm a segítséget!
Akkor nem értem.
De mindegy, ha jó akkor örülünk
Az a poén, hogy én se értem. Semmit nem változtattam a kapcsoláson se, de miután beírtam, jó lett a kijelzés a soros monitoron is meg a nyomógombra reagálás is. Persze mind a 3 ledre beírtam megfelelő módon.
if (ledEnabled1){
Serial.println("led 1 enabled");
}else{
Serial.println("led 1 disabled");
}
Az első 3 tesztedből már látszik, hogy használható lenne az elképzelésünk.
Csak bekellene fejezni a projektet, mivel még csak a felfedezések stádiumában tart.
Amennyiben még aktuális?
A második 3 teszt alapján viszont nem kaptál értékelhető mérést.
Tehát a kapásjelző magasabb frekvencián dolgozik, mint amit az AVR aránylag lassú ADC átalakítója letudna mérni.
Ezért az ADC jelszínt mérést kikellene hagyni, és közvetlen TTL jelszinteket figyelni.
Ahhoz az kel, hogy TTL jeleket kapj a vevőből.
Digitális rendszerek II.
A jelek analizálására jobb lenne 1 ilyen:
Logic-24M-8CH
Bővebben: Link
Idézet: „Érdeklődnék, hogyan lehet a kapásjelző RF jelét a hangkártya segítségével, megjeleníteni?”
Ha nincs analizátorod akkor egy hangkártya elé rakott feszültségosztó (1/100 1/1000) és leválasztó kondi amin keresztül a távírányító vevőben lévő hangfrekvenciát csatolod, vezeted be rá. A hozzászólás módosítva: Márc 14, 2018
Mivelhogy a kapunyitó, led-szalag vezérlő távirányítójának, kódkiolvasásához tökélete a RCswitch libraries, így felesleges ezen irányba tovább haladni.
Idézet: „Ahhoz az kel, hogy TTL jeleket kapj a vevőből.”
Morzsa15 hangkártyás méréseiből, nem az derül ki, hogy alacsony és magas szintek váltakoznak a vevő kimenetelén?
Arduino-ra, van logikai analizátor projekt?
Idézet: „Morzsa15 hangkártyás méréseiből” ?
Ha beraknád a linkjét?
Bővebben: Link A hozzászólás módosítva: Márc 14, 2018
Arduino-ra van mindenféle project, csodálkoznék ha erre nem lenne legalább 10 féle.
A kérdés csak az, hogy elég jó-e, amit ki lehet belőle hozni. Kínából pár dollárért lehet rendelni Saleae Logic klónt, csak arra kell figyelni hogy nincs bemeneti védelme. Bár az az arduinon sincs.
Köszi. Néztem már, csak sok idő mire ideér.
A linkelt ábrák alsó jel sorozat digitálisnak tűnik.
Megpróbálhatsz digitális impulzus jel hosszokat mérni.
Most csak gyorsan átalakítottam az előző programot, hogy tesztelhesd.
/*
RF Remote Capture sketch
Written by ScottC 24 Jun 2014
Arduino IDE version 1.0.5
Receiver: XY-MK-5V
Description: Use Arduino to Receive RF Remote signal
------------------------------------------------------------- */
const int dataSize = 500; //Arduino memory is limited (max=1700)
byte storedData[dataSize]; //Create an array to store the data
#define ledPin 13 //Onboard LED = digital pin 13
#define rfReceivePin A0 //RF Receiver data pin = Analog pin 0
const unsigned int upperThreshold = 100; //upper threshold value
const unsigned int lowerThreshold = 80; //lower threshold value
int maxSignalLength = 255; //Set the maximum length of the signal
int dataCounter = 0; //Variable to measure the length of the signal
unsigned long startTime=0; //Variable to record the start time
unsigned long endTime=0; //Variable to record the end time
unsigned long signalDuration=0; //Variable to record signal reading time
void setup(){
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
/* The following code will only run ONCE --------------
---Press the reset button on the Arduino to run again-- */
// while(analogRead(rfReceivePin)<1){
while(digitalRead(rfReceivePin)==0){
//Wait here until a LOW signal is received
startTime=micros(); //Update start time with every cycle.
}
digitalWrite(ledPin, HIGH); //Turn LED ON
//Read and store the rest of the signal into the storedData array
for(int i=0; i<dataSize; i=i+2){
//Identify the length of the LOW signal---------------LOW
dataCounter=0; //reset the counter
// while(analogRead(rfReceivePin)>upperThreshold && dataCounter<maxSignalLength){
while(digitalRead(rfReceivePin)== 0 && dataCounter<maxSignalLength){
dataCounter++;
}
storedData[i]=dataCounter;
//Identify the length of the HIGH signal---------------HIGH
dataCounter=0;//reset the counter
// while(analogRead(rfReceivePin)<lowerThreshold && dataCounter<maxSignalLength){
while(digitalRead(rfReceivePin)== 1 && dataCounter<maxSignalLength){
dataCounter++;
}
storedData[i+1]=dataCounter;
//Any readings between the two threshold values will be ignored.
//The LOW or HIGH signal length must be less than the variable "maxSignalLength"
//otherwise it will be truncated. All of the HIGH signals and LOW signals combined
//must not exceed the variable "dataSize", otherwise it will be truncated.
//The maximum number of signals is 1700 - if you try to extend this variable to a higher
//number than 1700 - then the Arduino will freeze up and sketch will not work.
//-------------------------------------------------------------
}
endTime=micros(); //Record the end time of the read period.
signalDuration = endTime-startTime;
digitalWrite(ledPin, LOW);//Turn LED OFF
//Send report to the Serial Monitor
Serial.println("=====================");
Serial.print("Read duration: ");
Serial.print(signalDuration);
Serial.println(" microseconds");
Serial.println("=====================");
Serial.println("LOW,HIGH");
delay(20);
byte digitData[dataSize/(2*8)]; //Create an array to store the data
byte bytes1 = 0;
byte bit_ = 0;
unsigned int Bytes = 0;
unsigned int sorszam = 0;
for(int i=0; i<dataSize; i=i+2){
Serial.print(storedData[i]);
Serial.print(",");
Serial.println(storedData[i+1]);
// delay(20);
// 8 analóg érték konvertálása 1 bájt-ra
if(storedData[i]>0 && storedData[i+1]<110){ // 1 bit osztályozás
if(storedData[i]>5){
bytes1 |= 1 << bit_;
}
bit_++;
if(bit_ >7){ // 1 Bytes tárolása
bit_ = 0;
digitData[Bytes] = bytes1;
bytes1 = 0;
Serial.print(sorszam);
sorszam++;
Serial.print(" Bytes: ");
Serial.println(digitData[Bytes]);
++Bytes;
}
}
}
}
void loop(){
//Do nothing here
}
Semmi, meg se „mukkan”. Se a led-vezérlőtől, se a kapásjelzőtől.
Akkor hangkártyán tudsz 2 csatornát mérni egyszerre.
Led vezérlő és Kapásjelző?
Akkor látnánk egyszerre mind a kettőt, és hogy mi a különbség köztük.
Azokat a méréseket Morzsa15 készítette.
Holnap megpróbálok én is mérni. Remélem, összejön. Majd jelentkezek.
Az a gond vele, hogy nem magyarázta el, hogy hól mit mért!
Látunk 2 jel sorozatott, de melyik mi?
Eddig az biztos, hogy nem TTL szintű jelek. A hozzászólás módosítva: Márc 14, 2018
Estét!
Léptetőmotort hajtok direktbe ULN2003 IC -vel.
int Coil1 = 8; //IN1 on the ULN2003 Board, BLUE end of the Blue/Yellow motor coil
int Coil2 = 9; //IN2 on the ULN2003 Board, PINK end of the Pink/Orange motor coil
int Coil3 = 10; //IN3 on the ULN2003 Board, YELLOW end of the Blue/Yellow motor coil
int Coil4 = 11; //IN4 on the ULN2003 Board, ORANGE end of the Pink/Orange motor coil
int S_LED = 13;
void setup()
{
pinMode(Coil2, OUTPUT);
pinMode(Coil3, OUTPUT);
pinMode(Coil4, OUTPUT);
pinMode(S_LED, OUTPUT);
digitalWrite (Coil1, LOW );
digitalWrite(Coil2, LOW);
digitalWrite(Coil3, LOW);
digitalWrite(Coil4, LOW);
digitalWrite(S_LED, LOW);
}
void loop()
{
digitalWrite(S_LED, HIGH);
digitalWrite(Coil4, LOW);
digitalWrite(Coil2, HIGH);
digitalWrite(Coil3, LOW);
digitalWrite (Coil1, HIGH );
//delay(2);
delayMicroseconds(2000);
digitalWrite(S_LED, LOW);
digitalWrite (Coil1, LOW );
digitalWrite(Coil2, HIGH);
digitalWrite(Coil3, HIGH);
digitalWrite(Coil4, LOW);
//delay(2);
delayMicroseconds(2000);
digitalWrite(S_LED, HIGH);
digitalWrite (Coil1, LOW );
digitalWrite(Coil2, LOW);
digitalWrite(Coil3, HIGH);
digitalWrite(Coil4, HIGH);
//delay(2);
delayMicroseconds(2000);
digitalWrite(S_LED, LOW);
digitalWrite (Coil1, HIGH );
digitalWrite(Coil2, LOW);
digitalWrite(Coil3, LOW);
digitalWrite(Coil4, HIGH);
//delay(2);
delayMicroseconds(2000);
}
A delay(2) értékét már hiába veszem kissebbre, az 1 -es értéket már nem bírja,
gondolom a motor kiesik a szinkronból, jól gondolom?
Két motort is próbáltam, különbözőek, de a delay(2) alatti értékeket egyik se bírja.
Van valami mód szerintetek a gyorsításra?
Vagy nem tudom a STEP/DIR rendszerü vezérléssel se menne gyorsabban?
Most volt időm újra átnézni a linkelt ábrákat.
Kiderült, hogy a felső jel sorozat a kapásjelző.
Siralmasan rossz, alul felül óriási túllövésekkel, és alacsony jelszint különbséggel.
A tüskéket le lehetne vágni, mondjuk 47n – 100n-es kerámia kondikal.
A jelszintet pedig formázni kellene!
Mondjuk ilyen komparátorral: Bővebben: Link LM239NG
Az adatlapjában szereplő: Bővebben: Link
Figure 3. Noninverting Comparator with Hysteresis. bekötés szerint.
Az R1 + Rref helyére teszel 10K lineális potmétert, és azzal betudod állítani a kapcsolási szintet.
A tesztprogram lehet az előző analóg méréseken alapuló változat.
|
|