Hirdetés

2024. április 28., vasárnap

Gyorskeresés

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2023-03-11 00:46:52

LOGOUT.hu

Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.

Összefoglaló kinyitása ▼

Hozzászólások

(#1301) Gergosz2 válasza lajbi30 (#1298) üzenetére


Gergosz2
veterán

akkor más a felállás. DHT11 nem lesz ide jó, az a levegő hőmérsékletét fogja neked mérni. Persze biztosan ezzel is meg lehetne csinálni, ha kellően jó modellje van az embernek.

Szükséged lesz egy ilyenre: [link] vagy valami ehhez hasonlóra. De én mindenképp vennék valami kisebb keringető szivattyú(kat), a hőmérsékleti gradiens csökkentése miatt.

Nokia 6030 Hardcore User // I Panic Restaurant by Taito

(#1302) lajbi30 válasza Gergosz2 (#1301) üzenetére


lajbi30
csendes tag

Egy jelenleg is működő akváriumról tárgyalunk. Minden működik amiről beszélgetünk csak manuálisan. A világitás és a venti 220-as időkapcsolókkal és a led nem dimmelt. Ezeket szeretném automatizálni.

[ Szerkesztve ]

(#1303) Gergosz2 válasza lajbi30 (#1302) üzenetére


Gergosz2
veterán

Így látatlanban elég nehéz egy ilyet megcsinálni. Szóval, ezt mindenképp neked kell megoldani, vagy egy az egyben elvinni valakihez. Egyszerűen sokkal gyorsabb megoldani valamit, ha rögtön ott van melletted hardver.

Nokia 6030 Hardcore User // I Panic Restaurant by Taito

(#1304) lajbi30 válasza Gergosz2 (#1303) üzenetére


lajbi30
csendes tag

ne adjátok fel fiuk!
Nekem csak egy program kéne a többit én már megoldom.

(#1305) nemethbuda


nemethbuda
csendes tag

Sziasztok!

Nagyon kezdő Arduino használó vagyok, a következő feladatban kérném a segítségeteket: lenne 6 kapcsoló, aminek az állapotát kéne elérnem. Egymástól függetlenül lehetnek be/kikapcsolva is. Hogyan kellene bekötnöm ezeket?

Köszi a segítséget! :)

(#1306) softguner válasza gyapo11 (#1291) üzenetére


softguner
csendes tag

Újfent igazad, van belekavarodtam ebbe, itt pwm csak a kitöltési időtényezőt változtatja, viszont én úgy értelmeztem a leírást, hogy a Bit-banging-nél változik a frekvencia is az késleltetési idő függvényében. Hmm..ennek jobban utána olvasok. Viszont látod, egy újabb sötét foltot fehérítettél ki. Szerencsére tőled mindig tanulok valamit :)

(#1307) Gergosz2 válasza nemethbuda (#1305) üzenetére


Gergosz2
veterán

pl: a kapcsolót egy jó nagy ellenállás és a táp (5V) közé rakod be, az ellenállás másik lábát földeled. A nem földelt lábat valamelyik bemenetre kötöd és kész is. (Szemléltetés: [link]) 1k-nál én nagyobbat szoktam berakni, de így is tökéletes.

[ Szerkesztve ]

Nokia 6030 Hardcore User // I Panic Restaurant by Taito

(#1308) lajbi30 válasza Gergosz2 (#1307) üzenetére


lajbi30
csendes tag

Még mindig áll az ajánlatom!
Mellékelem az elképzelésem

(#1309) lajbi30 válasza lajbi30 (#1308) üzenetére


lajbi30
csendes tag

No itt egy működő óra!

// simple sketch to display a digital Alarm clock on an LCD keypad shield without RTC
// see the LiquidCrystal documentation for more info on this
//

/*
The circuit:
* LCD RS (Data or Signal Display Selection) pin to digital pin 8
* LCD Enable pin to digital pin 9
* LCD D4 pin to digital pin 4
* LCD D5 pin to digital pin 5
* LCD D6 pin to digital pin 6
* LCD D7 pin to digital pin 7
* LCD R/W pin to ground
* 10K resistor:
* ends to +5V and ground
* wiper to LCD VO pin (pin 3)
* Backlit Control to Digital 10
* Button (select, up, right, down and left) to Analog 0
*/

#include <LiquidCrystal.h>
// include header file for time function
#include <Time.h>
/*
You can download the library from here:

https://github.com/JChristensen/Timer
*/

// Button defination for LCD Keypad shield
#define btnRIGHT 0 // Okay
#define btnUP 1 // inc
#define btnDOWN 2 // dec
#define btnLEFT 3 // Select
#define btnSELECT 4 // Menu
#define btnNONE 5
// Observed values:
// NONE: 1023
// SELECT: 723
// LEFT: 481
// DOWN: 307
// UP: 133
// RIGHT: 0

#define beeper A1 // Alarm buzzer
#define shortBeep 100
#define longBeep 500

#define TIME_MSG_LEN 11 // time sync to PC is HEADER followed by unix time_t as ten ascii digits
#define TIME_HEADER 'T' // Header tag for serial time sync message
#define TIME_REQUEST 7 // ASCII bell character requests a time sync message

// define variables
int lcd_key = 0;
int adc_key_in = 0;
int lastDay = 0;
int lastMonth = 0;
int lastYear = 0;
int lastHour = 0;
int lastMinute = 0;
int movementTimer = 0;
int menuOptions = 4;
int menuOption = 0;
int alarmHours = 0;
int alarmMinutes = 0;
bool alarmSet = 0;
bool backLightOn = 1;
int fadeValue = 255;

// define constants
const int backLight = 10; // pin 10 will control the LCD backlight

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

void setup()
{
pinMode(backLight, OUTPUT);
pinMode(beeper, OUTPUT);
digitalWrite(backLight, HIGH); // turn backlight on. Replace 'HIGH' with 'LOW' to turn it off.
Serial.begin(9600);
setSyncProvider( requestSync); //set function to call when sync required
}

void loop(){
if(Serial.available() )
{
processSyncMessage();
}
else
if(timeStatus()== timeNotSet)
{
// setTime(1356210000);
setTime(8, 0, 0, 20, 1, 2013); // hour, min, sec, day, month, year
// Replace this with the most current time
}

if(timeStatus()!= timeNotSet)
{
digitalWrite(13,timeStatus() == timeSet); // on if synced, off if needs refresh
digitalClockDisplay();
}

for (int i = 0; i < 9000; i++)
{
button_loop(); //check for button pushed
}
}

void printDigits(byte digits){
// utility function for digital clock display: prints preceding colon and leading 0
lcd.print(":");
if(digits < 10)
lcd.print('0');
lcd.print(digits,DEC);
}

void digitalClockDisplay(){
//lcd.clear();
lcd.begin(16,2);
lcd.setCursor(3,0);
lcd.print(" ");
lcd.setCursor(3,1);
lcd.print(" ");
lcd.setCursor(3,0);
if(day() <10)
lcd.print('0');
lcd.print(day(),DEC);
lcd.print("/");

if(month() <10)
lcd.print('0');
lcd.print(month(),DEC);
lcd.print("/");
lcd.print((year()));

//lcd.print(" ");
if(hour() <10)
lcd.setCursor(5,1);
lcd.setCursor(4,1);

// digital clock display of current time
lcd.print(hour(),DEC);
printDigits(minute());
printDigits(second());
// for time set
lastDay = day();
lastMonth = month();
lastYear = year();
lastHour = hour();
lastMinute = minute();

//check for alarm
if (alarmSet)
{
// alarm set
if (alarmHours == lastHour && alarmMinutes == lastMinute)
{
//sound alarm
setOffAlarm();
}
}
}

void processSyncMessage() {
// if time sync available from serial port, update time and return true
while(Serial.available() >= TIME_MSG_LEN ){ // time message consists of a header and ten ascii digits
char c = Serial.read() ;
Serial.print(c);
if( c == TIME_HEADER ) {
time_t pctime = 0;
for(int i=0; i < TIME_MSG_LEN -1; i++){
c = Serial.read();
if( c >= '0' && c <= '9'){
pctime = (10 * pctime) + (c - '0') ; // convert digits to a number
}
}
setTime(pctime); // Sync Arduino clock to the time received on the serial port
}
}
}

time_t requestSync()
{
Serial.write(TIME_REQUEST);
return 0; // the time will be sent later in response to serial mesg
}

void button_loop()
{
int button = read_LCD_buttons();
if (button == btnSELECT)
{
timedBeep(shortBeep,1);
selectMenu();
}
if (button == btnDOWN)
{
fadeValue = fadeValue -5;
if (fadeValue < 5) { fadeValue = 0; }
analogWrite (backLight, fadeValue);
delay (100);
}
if (button == btnUP)
{
fadeValue = fadeValue +5;
if (fadeValue > 254) { fadeValue = 255; }
analogWrite (backLight, fadeValue);
delay (100);
}
}

void selectMenu()
{
int button = 0;
menuOption = 1;
lcdClear();
lcd.print("Minute Timer");

while (menuOption <= menuOptions)
{
button = read_LCD_buttons();
if (button == btnSELECT)
{
timedBeep(shortBeep,1);
menuOption++;

if (menuOption == 2)
{
lcdClear();
// clearAlarm feature
lcd.print("Set/Clear Alarm");
}
if (menuOption == 3)
{
lcdClear();
lcd.print("Set Date/Time");
}
if (menuOption == 4)
{
lcdClear();
lcd.print("Stop Watch Timer");
}
}

if (button == btnLEFT)
{
if (menuOption == 1)
{
timedBeep(shortBeep,1);
minuteTimer();
return;
}
if (menuOption == 2)
{
timedBeep(shortBeep,1);
// clearAlarm feature
//check for existing alarm
if (alarmSet)
{
clearAlarm();
}
else
{
setAlarm();
}
return;
}
if (menuOption == 3)
{
timedBeep(shortBeep,1);
// setDateTime feature
setDateTime();
return;
}
if (menuOption == 4)
{
timedBeep(shortBeep,1);
stopwatch_time_counter();
return;
}
}
}
}

// clearAlarm feature
void clearAlarm()
{
int button = 0;
bool clearIt = true;

lcdClear();
lcd.print("Alarm Set For");
lcd.setCursor(0,1);
lcd.print(alarmHours);
lcd.print(":");
lcd.print(alarmMinutes);
delay(2000);
lcdClear();
lcd.print("Clear Alarm?");
lcd.setCursor(0,1);
lcd.print("Yes");

while (button != btnSELECT)
{
button = read_LCD_buttons();
if (button == btnUP)
{
timedBeep(shortBeep,1);
clearIt = !clearIt;
}
if (button == btnDOWN)
{
timedBeep(shortBeep,1);
clearIt = !clearIt;
}
if (button == btnRIGHT)
{
timedBeep(shortBeep,1);
alarmSet = !clearIt;
if (clearIt)
{
lcdClear();
timedBeep(shortBeep,2);
lcd.print("Alarm Cleared!");
delay(2000);
}
return;
}
lcd.setCursor(0,1);
if (clearIt)
{
lcd.print("Yes");
}
else{
lcd.print("No ");
}
}
}

void minuteTimer()
{
// Pass maxCount to getTimerMinutes
int timerMinutes = getTimerMinutes("Set Minutes", 0, 60);
if (timerMinutes > 0)
{
timedCountDown(timerMinutes*60, "Minute Timer");
}
else
{
timerCancelled("Timer");
}
return;
}

void stopwatch_time_counter()
{
static unsigned long elapsed_time = 0;
static unsigned long last_read;
static unsigned char is_ticking = 0;
static unsigned char top_is_pressed = 0;
static unsigned char bottom_is_pressed = 0;
static unsigned char last_seconds = 0;
int button = 0;

while (button != btnSELECT)
{

unsigned long current_time = millis();
if(is_ticking)
{
elapsed_time += current_time - last_read;
}
last_read = current_time;

button = read_LCD_buttons();
if(button == btnUP)
{
if(!top_is_pressed)
{
// reset
top_is_pressed = 1;
is_ticking = 0;
elapsed_time = 0;
timedBeep(shortBeep,1);

//wait_for_button_release(TOP_BUTTON);clear();// tmphax to make this work on org06a01
lcdClear();
lcd.print("Stop Watch Timer");
}
}
else
{
top_is_pressed = 0;
}

if(button == btnDOWN)
{
if(!bottom_is_pressed)
{
// start/stop
bottom_is_pressed = 1;
is_ticking = !is_ticking;
timedBeep(shortBeep,1);
}
}
else
{
bottom_is_pressed = 0;
}

lcd.setCursor(0,1);
lcd.print(elapsed_time/1000/60/60/10%10); // tens of hours
lcd.print(elapsed_time/1000/60/60%10); // hours
lcd.print(":");
lcd.print(elapsed_time/1000/60/10%10%6); // tens of minutes
lcd.print(elapsed_time/1000/60%10); // minutes
lcd.print(":");
lcd.print(elapsed_time/1000%60/10); // tens of seconds
unsigned char seconds = elapsed_time/1000%60%10;
lcd.print(seconds);
lcd.print(".");
lcd.print(elapsed_time/100%10); // tenths of seconds
lcd.print(elapsed_time/10%10); // hundredths of seconds

// beep every second
if(seconds != last_seconds && elapsed_time != 0)
{
//timedBeep(shortBeep,1);
}
last_seconds = seconds;
}

timerCancelled("StopWatch");

}

void setAlarm()
{
int button = 0;
// Pass maxCount to getTimerMinutes
alarmHours = getTimerMinutes("Set Alarm Hour", alarmHours, 23);
// Validate alarm hours > 0 and < 24
if (alarmHours >= 0 && alarmHours < 24)
{
// Pass maxCount to getTimerMinutes
alarmMinutes = getTimerMinutes("Set Minutes", alarmMinutes, 59);
// allow alarm minutes to be 0
if (alarmMinutes < 60)
{
lcdClear();
lcd.setCursor(0,1);
//display alarm time
lcd.print(alarmHours);
lcd.print(":");
if (alarmMinutes < 10)
lcd.print("0");
lcd.print(alarmMinutes);
if (button == btnRIGHT)
{
timedBeep(shortBeep,1);
alarmSet = true;
lcd.setCursor(0,0);
lcd.print("Alarm Set for");
delay(1000);
return;
}
else
{
timerCancelled("Alarm");
return;
}
}
else
{
timerCancelled("Alarm");
}
}
else
{
timerCancelled("Alarm");
}
}

// setDateTime feature
void setDateTime()
{
int button = 0;

//get month
int setMonth = getTimerMinutes("Set Month", lastMonth, 12);
if (setMonth > 0 && setMonth < 13)
{
//get day
// default day and hour settings on set date/time
int setDay = getTimerMinutes("Set Day", lastDay, 31);
if (setDay > 0 && setDay < 32)
{
//get year
int setYear = getTimerMinutes("Set Year", lastYear, 2999);
if (setYear > 2000 && setYear < 3000)
{
//get hour
int thisHour = lastHour;
// default day and hour settings on set date/time
int setHour = getTimerMinutes("Set Hour", thisHour, 23);
if (setHour >= 0 && setHour < 24)
{
//get minutes
int setMinute = getTimerMinutes("Set Minute", lastMinute, 59);
if (setMinute < 60)
{
// RTC.adjust(DateTime(setYear,setMonth,setDay,setHour,setMinute)); // for DS1307
setTime(setHour, setMinute, 0, setDay, setMonth, setYear); // sec, min, hour, date, month, year

lcd.setCursor(0,0);
lcd.print("Saving... ");
delay(1000);
return;
}
else
{
timerCancelled("");
return;
}
}
else
{
timerCancelled("");
}
}
else
{
timerCancelled("");
}
}
else
{
timerCancelled("");
}
}
else
{
timerCancelled("");
}

}

// read the buttons from LCD keypad shield
int read_LCD_buttons()
{
adc_key_in = analogRead(0); // read the value from the sensor
// my buttons when read are centered at these valies: 0, 131, 307, 481, 722
// we add approx 50 to those values and check to see if we are close
// No button pressed should be 1023
if (adc_key_in > 1000) return btnNONE; // We make this the 1st option for speed reasons since it will be the most likely result
if (adc_key_in < 50) return btnRIGHT;
if (adc_key_in < 195) return btnUP;
if (adc_key_in < 380) return btnDOWN;
if (adc_key_in < 555) return btnLEFT;
if (adc_key_in < 790) return btnSELECT;
return btnNONE; // when all others fail, return this...

}

void timedCountDown(int secondCount, char countLabel[])
{
long seconds = 0;
long minutes = 0;

lcdClear();
lcd.print(countLabel);
for (int i = secondCount; i >= 0; i--)
{
seconds = i;
minutes = i / 60;
if (minutes > 0)
{
seconds = seconds - (minutes * 60);
}

if (minutes > 0)
{
lcd.setCursor(0,1);
lcd.print(minutes);
lcd.print(" min ");
}
else
{
lcd.setCursor(0,1);
}
if (seconds < 10) lcd.print("0");
lcd.print(seconds);
lcd.print(" sec remaining");
if (seconds > 0) delay(1000);
if (read_LCD_buttons() == btnSELECT) //cancel
{
timerCancelled("Timer");
i = 0;
return;
}
}
lcd.setCursor(6,1);
timedBeep(longBeep,3);
}

// Pass maxCount to getTimerMinutes
int getTimerMinutes(char timerText[], int startNum, int maxCount)
{
int minutes = startNum;
int button = 0;
lcdClear();
lcd.print(timerText);
lcd.setCursor(0,1);
lcd.print(minutes);

while (button != btnSELECT)
{
button = read_LCD_buttons();
Serial.println(button);

if (button == btnLEFT)
{
if ((minutes + 10) <= maxCount)
{
timedBeep(shortBeep,1);
minutes = minutes + 10;
}
else
{
timedBeep(shortBeep,2);
}
}

if (button == btnUP)
{
if (minutes < maxCount)
{
timedBeep(shortBeep,1);
minutes++;
}
else
{
timedBeep(shortBeep,2);
minutes = 0;
}
}
if (button == btnDOWN)
{
if (minutes > 0)
{
timedBeep(shortBeep,1);
minutes--;
}
else
{
timedBeep(shortBeep,2);
minutes = maxCount;
}
}
if (button == btnRIGHT)
{
timedBeep(shortBeep,1);
return minutes;
}
lcd.setCursor(0,1);
lcd.print(minutes);
lcd.print(" ");
}
return 0;
}

void timedBeep(int beepTime, int beepCount)
{
for (int i = 0; i < beepCount; i ++)
{
digitalWrite(beeper, HIGH);
delay(beepTime);
digitalWrite(beeper, LOW);
delay(beepTime);
}
}

void lcdClear(){
lcd.clear();
lcd.begin(16,2);
lcd.setCursor(0,0);
}

void timerCancelled(char message[])
{
lcdClear();
lcd.print(message);
lcd.print(" Cancelled");
timedBeep(shortBeep,3);
}

void setOffAlarm()
{
int button = 0;
int i = 0;
Serial.println(i);
digitalWrite(backLight, HIGH); // turn backlight on
while (button != btnSELECT)
{
button = read_LCD_buttons();
lcdClear();
i++;
if (i > 50)
{
lcdClear();
lcd.print("Alert Alert");
lcd.setCursor(0,1);
lcd.print(" Alert Alert");
i = 0;
timedBeep(shortBeep,3);
}

}
timerCancelled("Alarm");
alarmSet = false;
}

(#1310) Gergosz2 válasza lajbi30 (#1309) üzenetére


Gergosz2
veterán

az órát piszok egyszerű megcsinálni. Én DS3231 -library-t használok, 1602-höz meg LiquidCrystal library-t amiben van I2C-s header.

Nokia 6030 Hardcore User // I Panic Restaurant by Taito

(#1311) lajbi30 válasza Gergosz2 (#1310) üzenetére


lajbi30
csendes tag

OK az a baj,hogy az arduino belső óráját használja. Hogy kéne ebbe a kódba beillesztenem a külső órát?

(#1312) fecske13 válasza lajbi30 (#1302) üzenetére


fecske13
tag

Érdemes lenne ezt megnézned
[Építsünk akváriumvezérlőt...]
hátha találsz benne hasznos ötletet.

"Az a lényeg, egészség legyen, meg kerozin a repcsibe."

(#1313) lajbi30 válasza fecske13 (#1312) üzenetére


lajbi30
csendes tag

Kösz! Már olvastam párszor az oldalt. Nem az elképzeléssel van a baj,hanem a megvalósítással.
Tudom,hogy mit szeretnék,de nem értek a programozáshoz.

(#1314) gyapo11 válasza lajbi30 (#1294) üzenetére


gyapo11
őstag

Mi van, ha 26 fokon bekapcsol, és a szobában meg 27 fok van? Egyrészt nem kapcsol ki, másrészt a víz fölmelegszik 27 fokra.
Tud annyi hőt elvinni a párolgás?

[ Szerkesztve ]

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

(#1315) gyapo11 válasza nemethbuda (#1305) üzenetére


gyapo11
őstag

Szerintem jó ellenállás nélkül is a belső felhúzó ellenállásokat használva. Abban az esetben, ha ezek a kapcsolók nincsenek sehova bekötve, csak az arduinora. Ha mondjuk 12 V-ot, vagy 230-at kapcsolnak, az más eset, ott kell valami illesztés, esetleg galvanikus leválasztás.
pinMode(4, INPUT);
digitalWrite(4, HIGH);
Ezzel a felhúzó ellenállás bekapcsolva, a kapcsolót pedig a pin és a test közé kell tenni. Kikapcsolt állapotban high-t fog beolvasni, bakapcsolt állapotban pedig low-t.

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

(#1316) lajbi30 válasza gyapo11 (#1314) üzenetére


lajbi30
csendes tag

28 fokról visszahűti a vizet 25 fokig. Tehát tud!

(#1317) Bobyjack


Bobyjack
senior tag

Sziasztok! Azt szeretném megtudni, hogy ha egy szervo motornak elvesszük a tápfeszültségét, akkor mennyire válik szabadon elforgathatóvá a tengelye? Azzal tisztában vagyok, hogy a motor ilyenkor nem dolgozik, de hátha a hajtóműnek van egy fajta önzárása a nagy áttétel miatt :F Előre is köszönöm a választ!

(#1318) tvamos válasza Gergosz2 (#1295) üzenetére


tvamos
nagyúr

Amikor mar allitod a frekvenciat, akkor az mar nem pwm. Amugy jo amit irsz sok esetben celszeru allitani a fdekvenciat.

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#1319) Gergosz2 válasza tvamos (#1318) üzenetére


Gergosz2
veterán

de az lesz. Én így tanultam hajtásoknál is, hogy létezik f_mod/f_1=áll. szinkron moduláció és f_mod/f_1=var. aszinkron moduláció. Mindegyiknek van értelme: pl az elsőt egyszerűbb megvalósítani, sőt az esetek többségében azt is használják mert bőven elég. De pl van egy hajtásod, mondjuk egy 3F PMSM amit 3F ISZM modulátorral vezérelt ISZM feszültség inverterrel hajtasz, és a gépet nagyon széles fordulatszám tartományban szeretnéd nagyon pontosan az előírt fordulatszámon tartani. Ugye alacsony fordulatszámon nem kéne olyan nagy frekis vivőjel nem lenne gond, de ahogy ennek nagyságrendekkel nagyobb értékére gyorsítasz ott már lehetnek bajok. Persze szabályozóval lehet korrigálni, de pontos szabályozáshoz ez is igen nagy segítség lehet. De látszik, hogy ez elég speciális est, nem sok ilyen hajtás van.

Nokia 6030 Hardcore User // I Panic Restaurant by Taito

(#1320) Nagytoll


Nagytoll
senior tag

Hello! Ma hozott a postás egy kis kezdő dobozkát, arduino.cc-ről leszedtem a legújabb IDE-t, a telepítőset.
Felraktam, drivereket is telepített, utána bedugtam a lapot, nem adott errort, pedig azt olvastam, hogy azt fog majd, simán látta a gép, COM7-re csatlakozva. A problémám az, hogy bármit akarok feltölteni a lapra, mindig ezt a hibát kapom kb. 2 perc várakozás után.

(#1321) tvamos válasza Gergosz2 (#1319) üzenetére


tvamos
nagyúr

Latom mar, hogy valtoaram v.s. valtakpzo feszultseg szintu hitvitaba fog torkollni a dolog. Azt meg nem akarom.

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#1322) Gergosz2 válasza tvamos (#1321) üzenetére


Gergosz2
veterán

Én így tanultam, lehet máshol tanítják.

Nokia 6030 Hardcore User // I Panic Restaurant by Taito

(#1323) Gergosz2 válasza Nagytoll (#1320) üzenetére


Gergosz2
veterán

Szia!

Nincs rajta bootloader.

Nokia 6030 Hardcore User // I Panic Restaurant by Taito

(#1324) Nagytoll válasza Gergosz2 (#1323) üzenetére


Nagytoll
senior tag

Azt hogy tudom rávarázsolni? Keresgéltem neten, usb-n keresztül nem lehet jól gondolom? :(

(#1325) Danex válasza Bobyjack (#1317) üzenetére


Danex
addikt

Jól gondolod van egy kis ellenállása az áttételeknek , de ez ugye servonként változik, igazából ha kikapcsolt állapotban forgatod akkor érzed mennyi is az (csak óvatosan, ne hogy eltörd)

(#1326) gyapo11 válasza Nagytoll (#1324) üzenetére


gyapo11
őstag

Programozó kell hozzá vagy egy másik arduino, ami programozóként működik a rátöltött sketch segítségével.

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

(#1327) Bobyjack válasza Danex (#1325) üzenetére


Bobyjack
senior tag

Köszi a választ! Egy full kínai Ebayes MG996R szervót rendeltem a minap. Egy relatíve erős rugó ellenében dolgozna. Az érdekel, hogy a táp elvétele után lehet-e arra számítani, hogy alap helyzetbe álljon magától a rugó ereje miatt, vagy mindenképpen kell egy ciklust írnom, hogy 0 pozícióba kerüljön? Van esetleg innen valakinek ilyen szervója?

(#1328) kagzer válasza Bobyjack (#1327) üzenetére


kagzer
aktív tag

Nekem van.
Ha elveszed a tápot akkor elfordítható némi erővel a kar.
De az is elég macerás mert az áttétel miatt (olyan mint a lendkerekes autó) nehezen pozícionálható, ráadásul minden alaphelyzetbe állításkor kapcsolgatni kell.
Sokkal egyszerűbb ha programból home-olsz.

[ Szerkesztve ]

(#1329) softguner válasza Bobyjack (#1327) üzenetére


softguner
csendes tag

Szia

Én egy SG90-el trollkodtam, és arra a megállapításra jutottam, hogy feszültség nélkül, nagyjából feleakkora nyomatékkal lehet elfordítani, mint amekkora az SG90-nek a forgató nyomatéka volt. Szerintem babrás a rugóval visszaforgatni, mert a rugó gyengül stb stb. Csatlakoznék az előttem szólókhoz, hogy írj egy rutint ami, mindig amikor kell a neked szükséges fix pozócióba forgatja a szervót.

(#1330) albinolynx


albinolynx
őstag

Segítséget szeretnék kérni. Egy uno-ra felkerült az 1.0.5 r2 isp. Külső atmega88pu-ra szeretnék egy lefordított hex fájlt feltölteni. Grafikus felületként az AVR burn-o-mat-ot használom.
Timeout hibaüzenetet kapok folyamatosan. Linkelném a folyamatot, amit már lezongoráztam: [link]

Van ötletetek, hogy mi a probléma és a megoldás?

Ingyen sajt nincsen, csak az egérfogóban.

(#1331) Nagytoll


Nagytoll
senior tag

Sziasztok! Megéri tokot venni az arduinohoz, vagy jó ez így "meztelen"? :D

(#1332) Gergosz2 válasza Nagytoll (#1331) üzenetére


Gergosz2
veterán

Jó az úgy.

Nokia 6030 Hardcore User // I Panic Restaurant by Taito

(#1333) Bobyjack válasza softguner (#1329) üzenetére


Bobyjack
senior tag

Kagzernek és neked is köszönöm a válaszokat! :R

(#1334) slacktide


slacktide
csendes tag

Sziasztok!

Van köztetek olyan, akinek van tapasztalata az ESP8266 (link) Wifi modullal? Egy időjárás-állomásnál szeretném használni arra, hogy a szenzorok értékét bizonyos időközönként egy szerverre küldje, ami pedig egy adatbázisba ment. Arra gondoltam, hogy az adatrögzítést PHP segítségével szeretném megoldani a következő módon:
example.com/rogzit.php?param1=x¶m2=y

Egy ilyen linket szeretnék az arduinon dinamikusan hívni a fennt említett modul segítségével. A webszerver, és a PHP rész adott.
Meg tudom ezt tenni?

Köszi a segítségetek előre is :)

[ Szerkesztve ]

(#1335) softguner válasza slacktide (#1334) üzenetére


softguner
csendes tag

Egy ilyenre gondolsz?

[Példaprogram]

(#1336) slacktide válasza softguner (#1335) üzenetére


slacktide
csendes tag

Hasonlóra, csak saját adatfeldolgozással, és manipulációval, de ebből el tudok indulni, köszi :R

(#1337) borcz


borcz
csendes tag

Sziasztok!
Szeretnék arduino-val megoldani egy vezérlést.
Van egy léptető motor vezérlőm és ahhoz szeretnék kötni egy kártyát.

Amit el szeretnék érni hogy a motor folyamatosan forogjon egy irányba egy tempóval. A tempót szeretném pontosan beállítani. Pontos lépés állítással. Milyen kártya kell hozzá?
Kezdő vagyok még a területen.
Előre is köszönöm a segítséget :)

[ Szerkesztve ]

(#1338) Gergosz2 válasza borcz (#1337) üzenetére


Gergosz2
veterán

Szia!

Ha jól értem akkor jelenleg semmilyen hardvered sincs és most akarod beszerezni?

Akkor:

Ugye kell egy stepper motor (nem tudom mit akarsz vele csinálni, de gondolom nem több kW-os jószágot akarsz noszogatni.). Nagyjából itt is érdeme belőni, hogy milyen paraméterekkel rendelkezzen a kiválasztott példány. Persze ezt is lehet venni, mint sok minden mást, de azért otthon is körbelehet nézni hogy akard-e. Elég j lelőhely pl. selejtes nyomtatók, én is már nem egyet szedtem ki belőlük.

Kéne egy (vagy több) motorvezérló: L298, L293D, TB6612 stb.. tökéletesen megfelel de mondanom sem kell van ezekből is kismilió fajta amik közül mindenki megtalálja az egyedi igényének megfelelőt. Ezekből ebayen találsz ilyen dugdozós, board kivitelű cuccokat (személy szerint én nem szoktam ilyeneket venni, csak az IC-t szoktam). De igen jó móka (szerintem) ha te építed meg a teljesítmény fokozatot FET-ekből. Baromi sokat lehet tanulni belőle. Persze a késztermék nem biztos, hogy csúcs szuper lesz, de azt az érzést, hogy te csináltad és működik, gondolom nem kell magyaráznom milyen jó.

Aztán kéne mellé valami MCU. Igazából a feladat bonyolultsága alapján érdemes választani. Szóval itt akár lehet ATTINY45 vagy akár egy MEG 2560.

Nem árt ha van valami tápod. Igazából az is tökéletes, ha egy régi PC- tápot használsz erre, vagy akár más már nem használt készülékek dugdozós tápjai. Pl mostanában én egy ilyet szoktam használni: [link]

szerk: meg ugye nem árt ha van egykét ellenállás, kondi, próbapanel, kábelek stb.

[ Szerkesztve ]

Nokia 6030 Hardcore User // I Panic Restaurant by Taito

(#1339) borcz válasza Gergosz2 (#1338) üzenetére


borcz
csendes tag

Van már motorom: 57BYGH633
Táp: Omron 24V 4,5A
Motor vezérlő: BL-TB6560-V1.1

PICcel lett volna az első megoldás de azon nem lehet elég pici lépésidőket, vagy frekvenciát állítani... Sajnos.

(#1340) ajo026


ajo026
újonc

Sziasztok!

Szeretnék egy kis segítséget kérni!

Van e lehetőség ara, hogy az arduinó 2 pinje (kimenetipontja) közöt egyéb elem közbeiktatása nélkül rövidzárat hozzunk létre?

Egy PC billentyút szeretnék így vezérelni.

(#1341) gyapo11 válasza ajo026 (#1340) üzenetére


gyapo11
őstag

Nem egészen értem, hogy a 2-es pin és mi között jönne létre a rövidzár.
De akár a tápra akár a testre gondolsz nem egészséges, nem próbáltam.
Másrészt miért kellene rövidzár? Pc billentyű gondolom nem usb, ps/2-essel simán lehet kommunikálni data meg clock vezetéken.

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

(#1342) dave0825 válasza gyapo11 (#1341) üzenetére


dave0825
őstag

Szerintem úgy érti a 2 pin-t, hogy 2 I/O pin-t rövidre zárni, tehát pl. a 6-os és 8-as pineket. Legalábbis én így veszem ki a hsz-éből.

Huawei P30 // Suzuki DL650XT '15 <-- Kawasaki Z750 '07 <-- Aprilia RS 125 '99

(#1343) Gergosz2 válasza ajo026 (#1340) üzenetére


Gergosz2
veterán

kicsit részletezhetnéd a koncepciót.

De arra gondolok, hogy az egyiket inputként a másikat meg outputként használnád. Úgyis feszültségjel kell neked, szóval azért, hogy ne nyírd ki MCU-t nem árt ha ezt egy kellően nagy ellenállással teszed.

[ Szerkesztve ]

Nokia 6030 Hardcore User // I Panic Restaurant by Taito

(#1344) ajo026 válasza gyapo11 (#1341) üzenetére


ajo026
újonc

Nem 2 es pin, hanem kettő pin között.

Egy billentyű ugye kettő vezetéket zár rövidre. azt szeretném elérni, hogy egy esemény bekövetkezésekkor
mondjuk zárja rövidre a "G" billentyűhöz tartozó kettő vezetéket, mintha lenyomtuk volna a "G"billentyűt..

képet hogy tudok ide feltölteni?

[ Szerkesztve ]

(#1345) dave0825 válasza ajo026 (#1344) üzenetére


dave0825
őstag

Az új hozzászólás írásánál alul van egy Tallózás gomb, arra rányomsz, kiválasztod a képet (ha .png kiterjesztésű, akkor tegyél pipát a Tallózás gomb mellett a "Konvertálás JPG formátumra**" jelölőnégyzetbe, biztos, ami biztos), majd jobb oldalt az OK gomb, ha kész, kiírja, hogy kész, a hozzászólásba tegyél új sort, ha ott a kurzor, akkor nyomj alul a Beillesztés gombra.

Huawei P30 // Suzuki DL650XT '15 <-- Kawasaki Z750 '07 <-- Aprilia RS 125 '99

(#1346) ajo026 válasza dave0825 (#1345) üzenetére


ajo026
újonc

Köszönöm, így talán sikerül!

Az előbbi hozzászólásomhoz akartam ezt illeszteni. Kicsit talán érthetőbb lessz amit gondoltam.

[L:/dl/upc/2015-08/02/563831_wxnccvrqhksiqavt_bloksema.jpg](IMG:/dl/upc/2015-08/02/563831_wxnccvrqhksiqavt_bloksema.thumb.jpg)(/IMG)[/L]

(#1347) Gergosz2 válasza ajo026 (#1346) üzenetére


Gergosz2
veterán

Nagyjából értem mit akarsz.

Szerintem egy PC billentyűzet billentyűje NO-s egypólusú egyáramkörös kapcsoló szóval gyanítom, hogy az is elég lenne, ha megfelelő lábra forrasztott kábelt szimplán outputra teszed és után már mehet a móka.

Nokia 6030 Hardcore User // I Panic Restaurant by Taito

(#1348) ajo026 válasza Gergosz2 (#1347) üzenetére


ajo026
újonc

Köszi a gyors választ!

Ugy tudom, hogy a bill. gombok mátrixba vannak kötve, és a két vezeték azonisítja a megfelelő gombot.

(#1349) inf3rno


inf3rno
nagyúr

Sziasztok!

Elég kezdő vagyok a témában. Van egy pár hőmérőm, páratartalom mérőm, kvarcom, kijelzőm, szeretnék összeszórni egy alap időjárás állomást, ami kiírja az időt meg az adatokat, ill. átküldi a logot wifin, ha bekapcsolom a gépet. Még RPI-hez vettem a szenzorokat, de nem volt időm belefogni az elektronikázásba. RPI-t sokallom ilyen kis feladathoz árban és teljesítményben is. Ugye működnek majd ezek ugyanúgy Arduino-val is? A wifi pajzs sokat fogyaszt, vagy elmegy egy aksival is vele huzamosabb ideig? Arra gondoltam, hogy valszeg a HTTP és polling kevesebbet fogyasztana, mint a websocket.

Ti hogyan szoktátok összerakni a műanyag/fém borítását ezeknek az eszközöknek? Honnan szoktatok szenzorokat meg borítást venni? Hol éri meg magát az Arduino-t megvenni?

Buliban hasznos! =]

(#1350) Gergosz2 válasza inf3rno (#1349) üzenetére


Gergosz2
veterán

Igen működni fognak Arduinoval is. WIFI shiled eléggé zabálni fogja az akksidat .

Ti hogyan szoktátok összerakni a műanyag/fém borítását ezeknek az eszközöknek?

Ezt nem nagyon értem, vagyis nem tudom mit akarsz pontosan. Gondolom mindent egy dobozba akarsz tenni , úgyhogy egy project boxra lesz szükséged. Persze ezekből is van kismillió fajta.

Arduino-t meg mint mint sok minden mást ebay-ről/ ali-ról stb... olcsón megkapja az ember.. Mivel opensource , ráadásul Eagle-ben még schematic és a board is benne van mintaként így nem jelent nagy kihívás legyártani a boardokat.

(#1348) ajo026

Ezt most nem tudom megmondani, de gyanítom ez esetben is működne amit írtam. De eddig egy billentyűzetet sem szedtem még szét szóval ebben nem vagyok teljesen biztos. Meg gondolom ezekből is rengetegféle van.

[ Szerkesztve ]

Nokia 6030 Hardcore User // I Panic Restaurant by Taito

Copyright © 2000-2024 PROHARDVER Informatikai Kft.