Keresés

Részletes keresés

Berezke Creative Commons License 2021.11.15 0 0 3971

Sziasztok,elakadtam egy kóddal,aki tud kérem segítsen.

Adott egy 4x3 keypad, 16x2 lcd Arduino uno.

Egy ponthegesztő időzítő lenne,a keypaddal megadott ms értékkel kapcsolná a relét.

Eddig jutottam:

 

#include <ezButton.h> // ezButton library https://arduinogetstarted.com/tutorials/arduino-button-library
#include <ezOutput.h> // ezOutput library
#include <Keypad.h>
#include <LiquidCrystal_I2C.h>

const int ROW_NUM = 4; //four rows
const int COLUMN_NUM = 3; //three columns

char keys[ROW_NUM][COLUMN_NUM] = {
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};

byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad
byte pin_column[COLUMN_NUM] = {5, 4, 3}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM );
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line

String inputString;
long inputInt;

ezButton button(11); // create Button object that attach to pin 7;
ezOutput led(13);

void setup() {

lcd.init(); // initialize the lcd
lcd.backlight();


button.setDebounceTime(50); // set debounce time to 50 milliseconds
led.low();
}

void loop() {
int gomb = 200;

button.loop(); // MUST call the loop() function first
led.loop(); // MUST call the loop() function first

if (button.isPressed())
lcd.print(gomb);
{
if (led.getState() == LOW) {
led.pulse( gomb, 2000); // 200 milliseconds HIGH pulse ,2000 milliseconds delay, 

}

}
}

 

kérdésem,hogy lehetne az " int gomb = 200;" értékbe a keypaddal megadott számot bevinni?

jelenleg azt csinélja,hogy ahányszor megnyomom a gombot működik,de minden myomásra 200-at

ír ki az lcd-n így: 5 x nyomom - 200200200200200

Szerelek69 Creative Commons License 2021.11.15 0 0 3970

Bocsánat az ma volt! :-)

Előzmény: Szerelek69 (3969)
Szerelek69 Creative Commons License 2021.11.15 0 0 3969

Szia!

 

Tegnap válaszoltam  a leveledre.

 

Üdvözlettel

Gábor

Előzmény: Alpári Gnác (3968)
Alpári Gnác Creative Commons License 2021.11.15 0 0 3968

Láttam a levelet, de a válaszomat visszadobta a hotmail, úgyhogy elküldtem egy gmail-es címről újra.

Előzmény: Szerelek69 (3966)
Alpári Gnác Creative Commons License 2021.11.14 0 0 3967

Küldj egy mailt a twinex@twinex.hu-ra és megbeszéljük.

Előzmény: Szerelek69 (3966)
Szerelek69 Creative Commons License 2021.11.14 0 0 3966

Igen BCD-ben van.

A jel illesztést megoldom, a többit értem amit írtál.

De sajnos nem tudom hogyan kell arduinoban beleírni.

 

 Ehhez kérnék segítséget, hogy a család ne fagyon meg ha nem vagyok otthon.

 Természetesen szívesen honorálom is segítséget.

 

Köszönettel

Gábor  

 

Előzmény: Alpári Gnác (3965)
Alpári Gnác Creative Commons License 2021.11.14 0 0 3965

Ha a BCD-t le tudod venni, akkor azt 4 digit bemeneten simán be tudod küldeni az Arduinoba, már persze ha 0-5V-os logikával jön a BCD.

Sorban lekérdezed a bemeneteket és egy int változó értékét növeled a megfelelő bitekhez tartozó értékkel, a végén lesz egy 0-15 közé eső értéked.

Aztán az egyes értékekhez hozzá rendeled a megfelelő pwm értéket.

Előzmény: Szerelek69 (3963)
Szerelek69 Creative Commons License 2021.11.14 0 0 3964

Az LS7315 leírása szerint. Ezek a paramétereket lehet megszólítani.

Fontos hogy legyen egy minimál érték aminél kevesebbel nem mehet.

Ha ez alatt járna ( mint pl. most a régi vezérlővel akkor a motor leég!

 Na ezt nagyon nem szeretném!

 

 Üdvözlettel

 Gábor 

Előzmény: Szerelek69 (3963)
Szerelek69 Creative Commons License 2021.11.14 0 0 3963

Igen egy fázishasításos Dimmert kellene készíteni.

 Minimum 10 fokozatban lehessen a beállított értékeket állítani.

Az ellen állás létra is működhet, csak nem tudom bele férne-e a mostani dobozba.

Ezért gondoltam hogy a mostani 1, 2, 4, 8 BCD jelt csatolnám be az Arduinoba.

 + Ha már 1-2 fokozatra kapok tippet akkor többi fokozatot már betudnám fejezni.

 

Ehhez kérném a segítséget.

Köszönettel

Gábor   

Előzmény: Alpári Gnác (3962)
Alpári Gnác Creative Commons License 2021.11.14 0 0 3962

Értem, tehát egy sima 230V-os fázishasításos dimmert szeretnél csinálni.

Ha jól értem, akkor az utolsó meglévő jel egy test az LS7315-ös IC valamelyik lábán, amire az IC egy előre meghatározott pwm értéket ad ki a triakra.

 

Ha ez így van, akkor egy egyszerű ellenállás létrával akár egyetlen analóg bemeneten tudod detektálni a vezérlő jel értékét.

Előzmény: Szerelek69 (3961)
Szerelek69 Creative Commons License 2021.11.14 0 0 3961

A programot csak átalakítani szeretném.

Pl. : https://www.youtube.com/watch?v=zJQf6bNodhE&ab_channel=Robojax

Ez egy elég részletes bemutató ami után remélem könnyen meg tudom oldani.

Használja a nulla detektálást ez indítja a késleltetést.

Itt a bekapcsolás késleltetési alapjel egy poti.

Minél nagyobb az értéke annál nagyobb a késleltetése. ( az égő teljesítménye csökken.)

Ennek a potinak a jelét szeretném digitális bemenetekről becsatolni. 

 

 

 

Előzmény: Alpári Gnác (3960)
Alpári Gnác Creative Commons License 2021.11.13 0 0 3960

Vagyis szinuszos kimenetet tudsz csinálni, és a decimálist kellene BCD-re konvertálni?

Előzmény: Szerelek69 (3959)
Szerelek69 Creative Commons License 2021.11.13 0 0 3959

A már említett probléma megoldásához kérném a segítségetek!

 

Köszönettel

Gábor

Előzmény: Szerelek69 (3958)
Szerelek69 Creative Commons License 2021.11.13 0 0 3958

Sziasztok!

 

Van egy megoldandó problémám.

Adott egy most rossz vezérlés, az egyik végfok egy AC Dimmer.

A BCD parancsot egy MC14067BCP IC kezeli le.

Ez 0 vagy 1-10-ig ad adat kiválasztást egy LS7315 IC-nek. ( gyújtásszöget késleltet 10 fix lépésben.)

Ilyet sajnos nem kapok sehol. :-(

Arduino-val létre tudnák hozni egy Dimmert a helyére, azonban az adat kiválasztást nem tudom átalakítani.

 

Plc-vel nem gond de Arduino-ban nem megy! :-(

 

Hogyan lehetne 4 bemenettel ezt megoldani?

 

Köszönettel Gábor

 

 

Prof Creative Commons License 2021.11.01 0 1 3957

Pontosan, NYÁK elő és hátoldal, plusz a kapcsolási rajz.

A felcserélés (ha tényleg csere), akkor az szinte biztosan kód. A kiolvasás általában táp és/vagy vezetékelés, ritkán kód. A kódot elegánsabb lett volna valamilyen kódmegosztón közzétenni, mert így kevésbé átlátható.

Előzmény: matyasf (3955)
Alpári Gnác Creative Commons License 2021.10.29 0 0 3956

Ha egy gomb működik, de egy másik gomb funkcióját végzi, akkor az rosszul van bekötve.

 

Ugyan NYÁK-rajzot nem látok, de a program alapján a gomboknak az IC alábbi lábain kell lenniük:

Fel: 4

Le: 5

Select: 6

 

Ha nem ott van, akkor szerencsés esetben csak át kell írni a programot.

Ugyanígy a többi eszköz bekötését is ellenőrizni kellene.

 

Ha jól van bekötve, akkor egyelőre passz...

 

Tegyél be egy NYÁK-rajzot.

Előzmény: matyasf (3955)
matyasf Creative Commons License 2021.10.29 0 0 3955

Sziasztok!

 

Idén végzős egyetemistaként írom szakdolgozatomat. Témám egy hőkezelő kemence automatizálásának megvalósítása melyet egy atmega 328p-pu csippel végzek és ehhez terveztem és készítettem egy egyedi áramkört, hogy ne kelljen beleépítenem az egész arduino UNO boardot. Azonban felmerült néhány probléma miután beüzemeltem a rendszert az egyedi nyákkal. A program egy menürendszerrel kezdődik ahol be tudok állítani különböző értékeket és paramétereket 3 gomb segítségével (up/down/select). A probléma az, hogy ha lenyomok egy gombot akkor valamilyen oknál fogva a másik gombhoz rendelt funkció reagál. Pl: select gomb feladata a továbblépés de valamiért az up gomb funkciója teljesül. A programban input pullup beállítást használtam a bemenetekre. Olvastam, hogy a csipben beépített ellenállások vannak melyeket ezzel a funkcióval tudok aktiválni ezért nem kell külön a nyákra építenem, ebben nem tévedek? Valamint ugyan ilyen problémák vannak az SD kártya olvasóval ami az arduino UNO boardban tökéletesen funkcionált. Nem tudom, hogy elképzelhető-e, hogy az adott bekötő vezetékekhez közel elhaladó hálózati kábel e a probléma? Időnként a MAX31855 K típusú hőszondákhoz való áramkör se olvas ki jelet. Kicsit tanácstalan vagyok és kezdek kifutni az időből ezért számítok a segítségetekre.

 

Előre is köszönöm!

 

Ui.: Képként feltöltöm a nyák kapcsolási rajzát illetve a programot (kicsit átláthatatlan mert még nem szerkesztettem de hátha segít).

 

A kód: 

#include <LiquidCrystal_I2C.h>
#include <LiquidCrystal.h> // LCD display library
#include <max6675.h> // Thermocouple card library
#include <PID_v2.h> // PID temp control library
#include <SPI.h> // Serial Peripheral Interface library
#include <SD.h> // SD memory card library (SPI is required)
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27,20,4);
#include "Adafruit_MAX31855.h"
File saveFile;

//NE VÁLTOZTASD MEG
const int upPin = 2;
const int downPin = 3;
const int selectPin = 4;
int optionNum = 0;
boolean segPhase = 0;
const int lcdRefresh = 2500; // Refresh rate to update screen when running (ms)
const int maxTemp = 1600; // Maximum temperature (degrees). If reached, will shut down.
const int numZones = 1; // Number of heating element + thermostat zones (max of 3)
const int pidCycle = 2500; // Time for a complete PID on/off cycle for the heating elements (ms)
double pidInput[1]; // Input array for PID loop (actual temp reading from thermocouple). Don't change.
double pidOutput[1]; // Output array for PID loop (relay for heater). Don't change.
double pidSetPoint[1]; // Setpoint array for PID loop (temp you are trying to reach). Don't change.
PID pidCont[1] = {PID(&pidInput[0], &pidOutput[0], &pidSetPoint[0], 800, 47.37, 4.93, DIRECT)}; // PID controller array for each zone. Set arguments 4/5/6 to the Kp, Ki, Kd values after tuning.
const long saveCycle = 15000; // How often to save current temp / setpoint (ms)
const int tempOffset[1] = {0}; // Array to add a temp offset for each zone (degrees). Use if you have a cold zone in your kiln or if your thermocouple reading is off. This gets added to the setpoint.
const int tempRange = 2; // This is how close the temp reading needs to be to the set point to shift to the hold phase (degrees). Set to zero or a positive integer.
const char tempScale = 'C';

int screenNum = 0; //4 ha vége
int i = 0;
double rampHours;
unsigned long rampStart;
unsigned long saveStart;
unsigned long schedStart;
unsigned long holdStart;
unsigned long lcdStart;
unsigned long pidStart;
int segNum;
int segHold;
int segRamp;
int segTemp;
const int heaterPin = 9;
String schedDesc1;
double calcSetPoint;
int lastTemp;
MAX6675 thermo[1] = {MAX6675(5, 6 ,7)};


void setup() {
Serial.begin(9600);
pinMode(heaterPin, OUTPUT);
pinMode(selectPin, INPUT_PULLUP);
pinMode(downPin, INPUT_PULLUP);
pinMode(upPin, INPUT_PULLUP);
pidInput[0] = 0;

lcd.begin(20, 4);
lcd.init();
lcd.backlight();

segRamp = 1000;
segTemp = 50;
segHold = 10; //percben!

SD.remove("temps.txt");

lcd.backlight();
lcd.clear();
lcd.print(F("Parameter beallit:"));
lcd.setCursor(0, 1);
lcd.print(F("Temp: "));
lcd.print(segTemp);
lcd.print((char)223);
lcd.print("C");
lcd.setCursor(0, 2);
lcd.print(F("Ramp: "));
lcd.print(segRamp);
lcd.print((char)223);
lcd.print("C/hr");
lcd.setCursor(0, 3);
lcd.print(F("Hold: "));
lcd.print(segHold);
lcd.print("min");
delay(100);


}

void loop() {
//Fel gomb
if(digitalRead(upPin) == LOW && screenNum == 0) {
if (optionNum == 0) {
segTemp = segTemp + 10;
}
if (optionNum == 1) {
segRamp = segRamp + 10;
}
if (optionNum == 2) {
segHold = segHold + 10;
}
updateLCD();
btnBounce(upPin);
}

//Le gomb
if(digitalRead(downPin) == LOW && screenNum == 0) {
if (optionNum == 0) {
segTemp = segTemp - 10;
}
if (optionNum == 1) {
segRamp = segRamp - 10;
}
if (optionNum == 2) {
segHold = segHold - 10;
}
updateLCD();
btnBounce(downPin);
}

//select gomb
if(digitalRead(selectPin) == LOW && screenNum == 0) {
if (optionNum == 0 || optionNum == 1 || optionNum == 2) {
optionNum = optionNum + 1;
}
if (optionNum == 3) {
setupPIDs();
segNum = 1;
screenNum = 1;
lcdStart = millis();
pidStart = millis();
rampStart = millis();
schedStart = millis();
updateLCD();
btnBounce(selectPin);
}

updateLCD();
btnBounce(selectPin);
}

//###############
//program elindítása
//###############
// if (digitalRead(selectPin) == LOW) {
// setupPIDs();
// segNum = 1;
// screenNum = 1;
// lcdStart = millis();
// pidStart = millis();
// rampStart = millis();
// schedStart = millis();
// updateLCD();
// btnBounce(selectPin);
// }


//############
//futás közben
//############
if (segNum >= 1) {

// Update PID's / turn on heaters / update segment info
if (screenNum < 4) {
if (millis() - pidStart >= pidCycle) {
pidStart = millis();
updatePIDs();
}
htrControl();
updateSeg();
}

// Refresh the LCD
if (millis() - lcdStart >= lcdRefresh) {
updateLCD();
lcdStart = millis();
}

// Save the temps to a file on SD card
if (millis() - saveStart >= saveCycle && pidInput[0] > 0 && screenNum < 4) {
saveFile = SD.open("temps.txt", FILE_WRITE);
saveFile.print((millis() - schedStart) / 60000.0); // Save in minutes
for (i = 0; i < numZones; i++) {
saveFile.print(",");
saveFile.print(pidInput[i]);
}
saveFile.print(",");
saveFile.println(pidSetPoint[0]);
saveFile.close();

saveStart = millis();
}

}



}

//################
//LCD frissítése
//################
void updateLCD() {
if (screenNum == 0) {
lcd.backlight();
lcd.clear();
lcd.print(F("Parameter beallit:"));
lcd.setCursor(0, 1);
lcd.print(F("Temp: "));
lcd.print(segTemp);
lcd.print((char)223);
lcd.print("C");
lcd.setCursor(0, 2);
lcd.print(F("Ramp: "));
lcd.print(segRamp);
lcd.print((char)223);
lcd.print("C/hr");
lcd.setCursor(0, 3);
lcd.print(F("Hold: "));
lcd.print(segHold);
lcd.print("min");
delay(100);
}
if (screenNum == 1){

if (segPhase == 0) {
lcd.backlight();
lcd.clear();
lcd.print(F("Felfutes: "));

lcd.setCursor(1, 1);
lcd.print(F("Sensor1:"));
lcd.setCursor(1, 2);
lcd.print(F("Rdg: "));
lcd.print((int)pidInput[0]);
lcd.print(char(223));
lcd.print("C");
lcd.setCursor(1, 3);
lcd.print(F("Set: "));
lcd.print((int)pidSetPoint[0]);
lcd.print((char)223);
lcd.print("C");
}
if (segPhase == 1) {
lcd.backlight();
lcd.clear();
lcd.print(F("Hontartas: "));

lcd.setCursor(1, 1);
lcd.print(F("Sensor1:"));
lcd.setCursor(1, 2);
lcd.print(F("Rdg: "));
lcd.print((int)pidInput[0]);
lcd.print((char)223);
lcd.print("C");
lcd.setCursor(1, 3);
lcd.print(F("Set: "));
lcd.print((int)pidSetPoint[0]);
lcd.print((char)223);
lcd.print("C");
lcd.setCursor(12, 1);
lcd.print(F("Hold: "));
lcd.setCursor(12, 2);
lcd.print(F("Now: "));
lcd.print((millis() - holdStart) / 60000);
lcd.print("m");
lcd.setCursor(12, 3);
lcd.print(F("Set: "));
lcd.print(segHold);
lcd.print("m");
}
}
if (screenNum == 4)
{
readTemps();
lcd.backlight();
lcd.clear();
lcd.print(F("Holepcsok kesz!"));
lcd.setCursor(0, 1);
lcd.print(F("Varj a lehulesre!"));
lcd.setCursor(0, 2);
lcd.print(F("Sensor1: "));
lcd.print((int)pidInput[0]);
lcd.print((char)223);
lcd.print("C");
}
}

//################
//PID beállítása
//################
void setupPIDs() {
pidCont[0].SetSampleTime(pidCycle);
pidCont[0].SetOutputLimits(0, pidCycle);
pidCont[0].SetMode(AUTOMATIC);
}

//################
//duplaklikk elkerülése
//################
void btnBounce (int btnPin) {
while (digitalRead(btnPin) == LOW);
delay(40);
}

//################
//szám karakterszámának meghatározása
//################
int intLenght(int myInt) {

myInt = abs(myInt);

if (myInt >= 10000) {
return 5;
}
else if (myInt >= 1000) {
return 4;
}
else if (myInt >= 100) {
return 3;
}
else if (myInt >= 10) {
return 2;
}
else {
return 1;
}
}
//##############
//hőmérséklet kiolvasása
//################
void readTemps() {


pidInput[0] = thermo[0].readCelsius();



}

//#############
//PID frissítés
//##############
void updatePIDs() {

// Get the last target temperature
if (segNum == 1) { // Set to room temperature for first segment

lastTemp = 24;

}

// Calculate the new setpoint value. Don't set above / below target temp
if (segPhase == 0) {
rampHours = (millis() - rampStart) / 3600000.0; //megadja mennyi ideje megy a ramp
calcSetPoint = lastTemp + (segRamp * rampHours);// kiszámolja a ramp időt és ezt beszorozva a fokot

if (segRamp >= 0 && calcSetPoint >= segTemp) {
calcSetPoint = segTemp;
}
if (segRamp < 0 && calcSetPoint <= segTemp) {
calcSetPoint = segTemp;
}
}
else {
calcSetPoint = segTemp; // Hold
}

// Read the temperatures
readTemps();

// Loop thru all PID controllers

// Set the target temp. Add any offset.
pidSetPoint[0] = calcSetPoint + tempOffset[0];
Serial.println(pidSetPoint[0]);
// Update the PID based on new variables
pidCont[0].Compute();

 

}

//###########
//fűtés be/ki
//#############
void htrControl() {

if (pidOutput[0] >= millis() - pidStart) {
digitalWrite(heaterPin, HIGH);
}
else {
digitalWrite(heaterPin, LOW);
}
Serial.println(pidOutput[0]);
}

//felfűtési fázis és szegmens frissítése
void updateSeg() {

// Start the hold phase
if ((segPhase == 0 && segRamp < 0 && pidInput[0] <= (segTemp + tempRange)) ||
(segPhase == 0 && segRamp >= 0 && pidInput[0] >= (segTemp - tempRange))) {
segPhase = 1;
holdStart = millis();
}

// Go to the next segment
if (segPhase == 1 && millis() - holdStart >= segHold * 60000) {
digitalWrite(heaterPin, LOW);
screenNum = 4;
}

 

}

Prof Creative Commons License 2021.10.02 0 1 3954

Ez itt egészen véletlenül nem egy paraméterezett függvényhívás?

Ilyenkor van az, hogy egy szál kiragadott, ráadásul szintaktikailag is helytelen kódsorból kell kitalálni valamit, ami így nyilván nem fog menni.

Előzmény: maya117 (3950)
halaloszto Creative Commons License 2021.09.29 0 1 3953

https://www.arduino.cc/reference/en/

 

Ezek az időzítős cuccok nem az arduino nyelv részei, hanem az adott board definíciójában levő makrók.

Előzmény: maya117 (3952)
maya117 Creative Commons License 2021.09.29 0 0 3952

Köszönöm!

Elérhető hát akkor valahol(leginkább ingyen letölthetően) egy KOMPLETT utasítás/függvény/stb -készlete az ARDUINO nyelvnek?

Előzmény: halaloszto (3951)
halaloszto Creative Commons License 2021.09.29 0 0 3951

"clockCyclesPerMicrosecond" értéke már adott: 16"

 

Ez azt jelenti, hogy egy us az 16 clk.

 

"clockCyclesToMicroseconds( 64 * 256)"

 

Ez egy konverziós függvény, ami clk-t us-be vált át. 

64 x 256 az 16384, a fenti 16 os váltószámmal ez 1024 us.

 

Vajk

Előzmény: maya117 (3950)
maya117 Creative Commons License 2021.09.29 0 0 3950

Egyszerűen nem tudom értelmezni az alábbi értékadást(vagy számítást?):

 

 

MICROSECONDS_PER_TIMER0_OVERFLOW =
    clockCyclesToMicroseconds( 64 * 256)

 

a "clockCyclesPerMicrosecond" értéke már adott: 16, és a számítás? eredménye 1024 lesz.

De sehol egy "/" PER-jel, stb.

Tudná valaki értelmezni számomra ezt a fura matematikai szintaxist?

rfamp Creative Commons License 2021.09.28 0 0 3949

Igen, az eszközkezelőben "Unknow Devices #1" ként jelenik meg a Digispark Board. A progamozáskor egyértelműen azt írjak és a youtube tutorial ban is ez látszik hogy a feltöltés megkezdésekor nem szabad rádugni a Digispark Board ot az USB re, csak miután az IDE kéri hogy most csatlakoztassam a Boardot. https://www.youtube.com/watch?v=zDja-6KWtm0  (07:50 től látszik) 

Előzmény: Prof (3948)
Prof Creative Commons License 2021.09.28 0 0 3948

Szia,

Megjelenik-e a board a kapcsolódó USB eszközök között akkor, amikor rá van dugva az USB portra?
Alapvetően az a gond, hogy a kártyát eleve nem ismeri fel az IDE. Az már részletkérdés, hogy a sorrend nem jó: előbb a kártyát kell bedugni, kiválasztani a kapcsolódó kártyák közül (céleszköz), majd kezdeményezni a feltöltést.
Ezen kívül még rengeteg lehetséges ok lehet a hibás kártyától kezdve a rossz vezérlőprogramon át a rossz beállításokig.

Előzmény: rfamp (3947)
rfamp Creative Commons License 2021.09.27 0 0 3947

Sziasztok!

 

Tudna valaki segíteni? Egy projectet szeretnék összehozni DIGISPARK board al (Attiny85). Nem foglalkoztam még arduino val csak PIC el. A problémám az, hogy telepítettem az IDE t, a megfelelő könyvtárat az AVRDUDE is feltelepítésre került. De nem tudodom feltölteni a DIGISPARK ra a programot mert time out al errort jelez. Tehát elindítom a feltöltést, kéri a board ot, beteszem az USB be de nem történik semmi. A Board on csak egy piros LED villog gyorsan, más semmi... Mi lehet a gond?  

Prof Creative Commons License 2021.09.04 0 1 3946

Pontosan.
Dokumentáció...

Előzmény: Vargham (3945)
Vargham Creative Commons License 2021.09.02 0 1 3945

Azért a fel és le húzó ellenállás nem divat kérdése, hanem műszaki. Valahol mindegy, de sok helyen nem.

Előzmény: Alpári Gnác (3944)
Alpári Gnác Creative Commons License 2021.09.02 0 0 3944

Érdekes ez a pull-down, mert bár műszakilag teljesen helytálló, mégis a konszenzus a pull-up.

 

Egyébként én belső pull-up-ot soha nem használtam, semmire.

De ez csak egy információ:)

 

Olyan ez, mint mikor megyek autóval a rakparton és jobbról-balról jönnek a robogósok.

Én szívesen elengedném mindegyiket, de ha lefele húzódok, akkor ennek vagyok útban, ha befele, akkor meg annak.

Ha lenne egy közmegegyezés, hogy a robogósok honnan kívánnak kikerülni, akkor segíthetnék és mindenki jobban járna.

 

Ugyanígy tök jó lenne, ha a gyártók végre elköteleznék magukat, hogy pull-up, vagy pull-down, pláne hogy konkrétan egy fillérrel sem kerülne többe, és akkor nem kellene mindig nyomozgatni...

Előzmény: hbbst (3941)
hbbst Creative Commons License 2021.09.01 0 0 3943

Köszi a gyors választ!

- Igen, paintben vaciláltam, hogy -12V-ot, vagy GND-t irjak... Lényeg, hogy test/negatív...

- Nem kell pull up, én is így gondoltam.

- Hestore-ból lesz rendelve a szalagkábel.

 

Köszi a segítséget!Í ;)

Előzmény: ruzsa janos (3942)
ruzsa janos Creative Commons License 2021.09.01 0 0 3942

én ugyan nem vagyok nagy elektronikai guru, de ha már engem kérdeztél:

- először is, nem írnám, hogy -12V, mert az csak GND (legfeljebb egy másik, mint az arduinoé, azért IGND) :)

- az inputokra biztosan nem kell pullup, mert stabilan le vannak húzva az OGND-re 

- az áramkör nem változtat a logikán: ha a bemenet +12V-re kerül, a kimenet +5 V-on (3.3V-on) lesz.

- ha lehet, gyárilag készített szalagkábelt használj.

Előzmény: hbbst (3941)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!