Keresés

Részletes keresés

Törölt nick Creative Commons License 2018.01.02 0 0 3303

Akkor az általam javasolt kódba írd be a megfelelő reléket, a relékhez tartozó lábakat, időpontokat, bővítsd fel megfelelő relé számig. 

Előzmény: tomi8822 (3302)
tomi8822 Creative Commons License 2018.01.02 0 0 3302

Üdv DS-3231-et.

Előzmény: Törölt nick (3301)
Törölt nick Creative Commons License 2018.01.02 0 0 3301

RTC-nek mit használsz:

DS-1307, vagy DS-3231-et?

Előzmény: tomi8822 (3300)
tomi8822 Creative Commons License 2018.01.01 0 0 3300

Segítenél kijavítani a kódot, hogy működjön?

Előzmény: Törölt nick (3299)
Törölt nick Creative Commons License 2018.01.01 0 0 3299

A loop részben nem fut a program.

Előzmény: tomi8822 (3298)
tomi8822 Creative Commons License 2017.12.31 0 0 3298

Üdv,össze raktam magamnak egy kódot, de nem kapcsol rendesen, segítsetek kijavítani, köszönöm.

 

#include <Wire.h>
#include <RTClib.h>
#include <Time.h>
#include <TimeAlarms.h>
 
RTC_DS1307 RTC;
 
// Start Time Light 1
int sHour = 06;
int sMinute = 40;
int sSecond = 0;

// Start Time Light 2
int s2Hour = 07;
int s2Minute = 00;
int s2Second = 00;

// Start Time Light 3
int s3Hour = 07;
int s3Minute = 20;
int s3Second = 00; 

// Start Time Light 4
int s4Hour = 07;
int s4Minute = 40;
int s4Second = 00;

// Start Time Light 5
int s5Hour = 07;
int s5Minute = 00;
int s5Second = 00;

// Start Time Light 6
int s6Hour = 07;
int s6Minute = 20;
int s6Second = 24; 

// End Time Light 1
int eHour = 17;
int eMinute = 40;
int eSecond = 00;

// End Time Light 2
int e2Hour = 18;
int e2Minute = 00;
int e2Second = 00;

// End Time Light 3
int e3Hour = 18;
int e3Minute = 20;
int e3Second = 00;

// End Time Light 4
int e4Hour = 18;
int e4Minute = 40;
int e4Second = 00;

// End Time Light 5
int e5Hour = 19;
int e5Minute = 00;
int e5Second = 00;

// End Time Light 6
int e6Hour = 19;
int e6Minute = 20;
int e6Second = 00;
 
int lightRelay1 = 9;
int lightRelay2 = 2;
int lightRelay3 = 3;
int lightRelay4 = 4;
int lightRelay5 = 5;
int lightRelay6 = 6;

void setup() {
  // Set the relay to off immediately
  digitalWrite(lightRelay1, HIGH);
  digitalWrite(lightRelay2, HIGH);
  digitalWrite(lightRelay3, HIGH); 
  digitalWrite(lightRelay4, HIGH);
  digitalWrite(lightRelay5, HIGH);
  digitalWrite(lightRelay6, HIGH); 
  Serial.begin(9600);
  Wire.begin();
  RTC.begin();
   
  // Set the pinmode
  pinMode(lightRelay1, OUTPUT);
  pinMode(lightRelay2, OUTPUT);
  pinMode(lightRelay3, OUTPUT);
  pinMode(lightRelay4, OUTPUT);
  pinMode(lightRelay5, OUTPUT);
  pinMode(lightRelay6, OUTPUT);
  
  // Notify if the RTC isn't running
  if (! RTC.isrunning()) {
    Serial.println("RTC is NOT running");
  }
 
  // Get time from RTC
  DateTime current = RTC.now();
  DateTime compiled = DateTime(__DATE__, __TIME__);
  if (current.unixtime() < compiled.unixtime()) {
    Serial.println("RTC is older than compile time! Updating");
    RTC.adjust(DateTime(__DATE__, __TIME__));    
  }
    
   // Use RTC time to set the start time1
  setTime(sHour, sMinute, sSecond, current.day(), current.month(), current.year());
  time_t s = now();
  
   // Use RTC time to set the start time2
  setTime(s2Hour, s2Minute, s2Second, current.day(), current.month(), current.year());
  time_t s2 = now();
  
   // Use RTC time to set the start time3
  setTime(s3Hour, s3Minute, s3Second, current.day(), current.month(), current.year());
  time_t s3 = now();
  
   // Use RTC time to set the start time4
  setTime(s4Hour, s4Minute, s4Second, current.day(), current.month(), current.year());
  time_t s4 = now();
  
   // Use RTC time to set the start time5
  setTime(s5Hour, s5Minute, s5Second, current.day(), current.month(), current.year());
  time_t s5 = now();
  
   // Use RTC time to set the start time6
  setTime(s6Hour, s6Minute, s6Second, current.day(), current.month(), current.year());
  time_t s6 = now();
  
   // Use RTC time to set the end time1
  setTime(eHour, eMinute, eSecond, current.day(), current.month(), current.year());
  time_t e = now();
  
   // Use RTC time to set the end time2
  setTime(e2Hour, e2Minute, e2Second, current.day(), current.month(), current.year());
  time_t e2 = now();
  
   // Use RTC time to set the end time3
  setTime(e3Hour, e3Minute, e3Second, current.day(), current.month(), current.year());
  time_t e3 = now();
  
   // Use RTC time to set the end time4
  setTime(e4Hour, e4Minute, e4Second, current.day(), current.month(), current.year());
  time_t e4 = now();
  
   // Use RTC time to set the end time5
  setTime(e5Hour, e5Minute, e5Second, current.day(), current.month(), current.year());
  time_t e5 = now();
  
   // Use RTC time to set the end time6
  setTime(e6Hour, e6Minute, e6Second, current.day(), current.month(), current.year());
  time_t e6 = now();
  
   // Use RTC time to set the current time
  setTime(current.hour(), current.minute(), current.second(), current.day(), current.month(), current.year());  
  time_t n = now();
  
  // Test if grow light should be on
  if (s <= n && n <= e) {
    digitalWrite(lightRelay1, LOW);  // Sets the grow light "on"
  }
  if (s2 <= n && n <= e2) {
    digitalWrite(lightRelay2, LOW);  // Sets the grow light "on"
  }
  if (s3 <= n && n <= e3) {
    digitalWrite(lightRelay3, LOW);  // Sets the grow light "on"
  }
  if (s4 <= n && n <= e4) {
    digitalWrite(lightRelay4, LOW);  // Sets the grow light "on"
  }
  if (s5 <= n && n <= e5) {
    digitalWrite(lightRelay5, LOW);  // Sets the grow light "on"
  }
  if (s6 <= n && n <= e6) {
    digitalWrite(lightRelay6, LOW);  // Sets the grow light "on"
  }
  Alarm.alarmRepeat(sHour, sMinute, sSecond, Light1On);
  Alarm.alarmRepeat(eHour, eMinute, eSecond, Light1Off);
  Alarm.alarmRepeat(s2Hour, s2Minute, s2Second, Light2On);
  Alarm.alarmRepeat(e2Hour, e2Minute, e2Second, Light2Off);
  Alarm.alarmRepeat(s3Hour, s3Minute, s3Second, Light3On);
  Alarm.alarmRepeat(e3Hour, e3Minute, e3Second, Light3Off);
  Alarm.alarmRepeat(s4Hour, s4Minute, s4Second, Light4On);
  Alarm.alarmRepeat(e4Hour, e4Minute, e4Second, Light4Off);
  Alarm.alarmRepeat(s5Hour, s5Minute, s5Second, Light5On);
  Alarm.alarmRepeat(e5Hour, e5Minute, e5Second, Light5Off);
  Alarm.alarmRepeat(s6Hour, s6Minute, s6Second, Light6On);
  Alarm.alarmRepeat(e6Hour, e6Minute, e6Second, Light6Off);
}
 
void loop() {
  DateTime now = RTC.now();
  setTime(now.hour(), now.minute(), now.second(), now.day(), now.month(), now.year());
   
  Serial.print("Current time: ");
  Serial.print(now.year(), DEC);
  Serial.print('/');
  Serial.print(now.month(), DEC);
  Serial.print('/');
  Serial.print(now.day(), DEC);
  Serial.print(' ');
  Serial.print(now.hour(), DEC);
  Serial.print(':');
  Serial.print(now.minute(), DEC);
  Serial.print(':');
  Serial.print(now.second(), DEC);
  Serial.println();
     
  Serial.println();
  Alarm.delay(600000);
}
void Light1On() {
  Serial.println("Turning Light 1 On");
  digitalWrite(lightRelay1, LOW);
}
void Light1Off() {
  Serial.println("Turning Light 1 Off");
  digitalWrite(lightRelay1, HIGH);
}
 void Light2On() {
  Serial.println("Turning Light 2 On");
  digitalWrite(lightRelay2, LOW);
}
void Light2Off() {
  Serial.println("Turning Light 2 Off");
  digitalWrite(lightRelay2, HIGH);
}
 void Light3On() {
  Serial.println("Turning Light 3 On");
  digitalWrite(lightRelay3, LOW);
}
void Light3Off() {
  Serial.println("Turning Light 3 Off");
  digitalWrite(lightRelay3, HIGH);
}
 void Light4On() {
  Serial.println("Turning Light 4 On");
  digitalWrite(lightRelay4, LOW);
}
void Light4Off() {
  Serial.println("Turning Light 4 Off");
  digitalWrite(lightRelay4, HIGH);
}
 void Light5On() {
  Serial.println("Turning Light 5 On");
  digitalWrite(lightRelay5, LOW);
}
void Light5Off() {
  Serial.println("Turning Light 5 Off");
  digitalWrite(lightRelay5, HIGH);
}
 void Light6On() {
  Serial.println("Turning Light 6 On");
  digitalWrite(lightRelay6, LOW);
}
void Light6Off() {
  Serial.println("Turning Light 6 Off");
  digitalWrite(lightRelay6, HIGH);
}

Törölt nick Creative Commons License 2017.12.27 0 0 3297

Ez alapján mennie kell:

[code]
#include <DS3231.h>

int Relay0 = 4;
int Relay1 = 5;
int Relay2 = 6;
int Relay3 = 13;

DS3231 rtc(SDA, SCL);
Time t;

const int OnHour0 = 12;
const int OnMin0 = 24;
const int OffHour0 = 12;
const int OffMin0 = 25;
const int OnHour1 = 12;
const int OnMin1 = 26;
const int OffHour1 = 12;
const int OffMin1 = 27;

void setup() {
Serial.begin(115200);
rtc.begin();
pinMode(Relay0, OUTPUT);
digitalWrite(Relay0, LOW);
pinMode(Relay1, OUTPUT);
digitalWrite(Relay1, LOW);
pinMode(Relay2, OUTPUT);
digitalWrite(Relay2, LOW);
pinMode(Relay3, OUTPUT);
digitalWrite(Relay3, LOW);
}

void loop() {
t = rtc.getTime();
Serial.print(t.hour);
Serial.print(" hour(s), ");
Serial.print(t.min);
Serial.print(" minute(s)");
Serial.println(" ");
delay (1000);

if(t.hour == OnHour0 && t.min == OnMin0){
digitalWrite(Relay0,HIGH);
Serial.println("LIGHT ON");
}

else if(t.hour == OffHour0 && t.min == OffMin0){
digitalWrite(Relay0,LOW);
Serial.println("LIGHT OFF");
}
if(t.hour == OnHour1 && t.min == OnMin1){
digitalWrite(Relay1,HIGH);
Serial.println("LIGHT ON");
}

else if(t.hour == OffHour1 && t.min == OffMin1){
digitalWrite(Relay1,LOW);
Serial.println("LIGHT OFF");
}
}
[/code]

Előzmény: tomi8822 (3296)
tomi8822 Creative Commons License 2017.12.27 0 0 3296

Üdv, úgy kellene kapcsolnom a reléket hogy pl az egyes relé bekapcsol 12:10-kor és ki kapcsol 18:10-kor.

A kettes relé bekapcsol pl 10:10 kor és kikapcsol 20:10-kor, és így tovább ahogy a példa programban is van.

Előzmény: Törölt nick (3295)
Törölt nick Creative Commons License 2017.12.27 0 0 3295

// relay8_Demo
// Copyright (C)2015 Rinky-Dink Electronics, Henning Karlsen. All right reserved
// web: http://www.RinkyDinkElectronics.com/
//
// A quick demo of most of the library functions.
//

// Include our library :)
#include <relay8.h>

// Declare what pins our relays are connected to.
// relay8 supports from 1 to 8 relays.
relay8 relay(2, 3, 4, 5, 6, 7, 8, 9);

void setup()
{
// Nothing special is needed here
}

void loop()
{
// Switch the first relay on and off a couple of times
for (int t=0; t<3; t++)
{
relay.on(1);
delay(500);
relay.off(1);
delay(500);
}

// Switch the last relay on and off a couple of times
for (int t=0; t<3; t++)
{
relay.on(relay.numberOfRelays());
delay(500);
relay.off(relay.numberOfRelays());
delay(500);
}

// Switch all relays on and off a couple of times
for (int t=0; t<3; t++)
{
relay.allOn();
delay(500);
relay.allOff();
delay(500);
}

// Cycle through all relays slowly from the first to the last
// then a little faster back down again
for (int t=0; t<3; t++)
{
relay.cycleUp();
relay.cycleDown(100);
}

// Switch on all relays in sequence then switch then all off
// again a little faster
for (int t=0; t<3; t++)
{
relay.chaseUpOn(500);
relay.chaseUpOff();
}

// Switch on all relays in sequence then switch then all off
// again a little faster. This time in the opposite direction
for (int t=0; t<3; t++)
{
relay.chaseDownOn();
relay.chaseDownOff(100);
}
}

Előzmény: tomi8822 (3294)
tomi8822 Creative Commons License 2017.12.27 0 0 3294

Üdv, köszönöm a segítséget, de úgy szeretném megoldani hogy mind a 6db relé külön adott időben be és ki kapcsolni ahogy a példa programban is van 1db relével.

Esetleg tudsz abban még segíteni hogy ez hogy nézne ki kész program formájában?

Előzmény: Törölt nick (3293)
Törölt nick Creative Commons License 2017.12.27 0 0 3293

int lightRelay1 = 2;

int lightRelay2 = 3;

int lightRelay3 = 4;

int lightRelay4 = 5;

int lightRelay5 = 6;

int lightRelay6 = 7;

 

vagy az általad választott digitális kimenet, minden reléhez külön.

Előzmény: tomi8822 (3292)
tomi8822 Creative Commons License 2017.12.26 0 0 3292

Üdv, valaki tudna segíteni nekem?
Ezt a programot szeretném használni de úgy hogy 6 db relét tudjak egyesével időre kapcsolni, lényegében 6 relére kéne kibővíteni. Eggyel működik gond nélkül.

// Date and time functions using a DS3231 RTC connected via I2C and Wire Lib

#include <Wire.h>
#include <RTClib.h>
#include <Time.h>
#include <TimeAlarms.h>

RTC_DS1307 RTC;

// Start Time
int sHour = 11;
int sMinute =30;
int sSecond = 0;

// End Time
int eHour = 11;
int eMinute = 30;
int eSecond = 4;

int lightRelay = 2;

void setup() {
// Set the relay to off immediately
digitalWrite(lightRelay, HIGH);

Serial.begin(9600);
Wire.begin();
RTC.begin();

// Set the pinmode
pinMode(lightRelay, OUTPUT);

// Notify if the RTC isn't running
if (! RTC.isrunning()) {
Serial.println("RTC is NOT running");
}

// Get time from RTC
DateTime current = RTC.now();
DateTime compiled = DateTime(__DATE__, __TIME__);
if (current.unixtime() < compiled.unixtime()) {
Serial.println("RTC is older than compile time! Updating");
RTC.adjust(DateTime(__DATE__, __TIME__));
}

// Use RTC time to set the start time
setTime(sHour, sMinute, sSecond, current.day(), current.month(), current.year());
time_t s = now();

// Use RTC time to set the end time
setTime(eHour, eMinute, eSecond, current.day(), current.month(), current.year());
time_t e = now();

// Use RTC time to set the current time
setTime(current.hour(), current.minute(), current.second(), current.day(), current.month(), current.year());
time_t n = now();

// Test if grow light should be on
if (s <= n && n <= e) {
digitalWrite(lightRelay, LOW); // Sets the grow light "on"
}

Alarm.alarmRepeat(sHour, sMinute, sSecond, LightOn);
Alarm.alarmRepeat(eHour, eMinute, eSecond, LightOff);
}

void loop() {
DateTime now = RTC.now();
setTime(now.hour(), now.minute(), now.second(), now.day(), now.month(), now.year());

Serial.print("Current time: ");
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(' ');
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();

Serial.println();
Alarm.delay(1000);
}

void LightOn() {
Serial.println("Turning Light On");
digitalWrite(lightRelay, LOW);
}

void LightOff() {
Serial.println("Turning Light Off");
digitalWrite(lightRelay, HIGH);
}

gamb1t Creative Commons License 2017.12.22 0 0 3291

Köszönöm a válaszát, a switch-case ügyet vmi kiguglizott fórumon olvastam , hogy jelen esetben vmi konstans hibára hivatkozik

Előzmény: Vargham (3290)
Vargham Creative Commons License 2017.12.22 0 0 3290

else if (1<kaka<2){

Warning comparisons like 'X<=Y<=Z' do not have their mathematical meaning

Tehát ez neked hülyeség, hiába helyes C programkód.

Ezt jelenti: Először kiértékeli ezt: 1 < kaka, ennek az eredménye egy bool lesz (true vagy false). Utána pedig megvizsgálja, hogy a kapott bool kisebb-e, mint 2, ami definíció szerint mindig true.

Helyette ez az alak használatos:

else if (1 < kaka && kaka < 2) {

De szép változóneved van...

> Mivel a switch-case-t egyáltalán nem tudtam működésre bírni (ahogy olvastam nem igazán működik az arduinon)

Pedig működik. Hol olvastál ilyet?

Előzmény: gamb1t (3288)
gamb1t Creative Commons License 2017.12.22 0 0 3289

Az előzőhöz nem mentek fel a képek, itt egy h mégis h néz ki a dolog...

gamb1t Creative Commons License 2017.12.22 0 0 3288

sziasztok


első project, egy plotterről leolvasott értéket duplázva (0-10) szeretném megoldani, h az 5 ledem közül felvillanjon az értéknek megfelelő számú (0-2-ig 1, 2-4-ig 2 stb..), és az érték(kerekítvenyilván) megjelenjen egy 7szegmensű kijelzőn. Ennek ugye egyszerű az emélete, mégsem jön össze. Külön külön minden tökéletesen működik, de nem tudom összehozni az egészet egyszerre. Nem a hivatalos arduino-m van, hanem vmi copy (ebayen az első ha rákeresel h arduino uno).

 

Mivel a switch-case-t egyáltalán nem tudtam működésre bírni (ahogy olvastam nem igazán működik az arduinon), elkezdtem az if-eket. 0 és 1 tökéletesen működik, prímán meg is jelenik a kis kijelzőn, ég a megfelelő LED, alles gut, but onnantól az istenért se menne tovább. A kód külön működik, de valamiért nem akar a program belépni oda ahová kellene...

 

int pinA = 6;
int pinB = 5;
int pinC = 2;
int pinD = 3;
int pinE = 4;
int pinF = 7;
int pinG = 8;

 

void setup() {
//serialmonitor
Serial.begin(9600);

//7segment
pinMode ( pinA, OUTPUT);
pinMode ( pinB, OUTPUT);
pinMode ( pinC, OUTPUT);
pinMode ( pinD, OUTPUT);
pinMode ( pinE, OUTPUT);
pinMode ( pinF, OUTPUT);
pinMode ( pinG, OUTPUT);

//LEDs
pinMode (9, OUTPUT);
pinMode (10, OUTPUT);
}

void loop() {

int sensorValue = analogRead(A0);
float voltage = sensorValue * (5.0 / 1023.0);
float kaka = voltage*2;
Serial.println(kaka);


if (kaka<1) {
digitalWrite (pinA, HIGH);
digitalWrite (pinB, HIGH);
digitalWrite (pinC, HIGH);
digitalWrite (pinD, HIGH);
digitalWrite (pinE, HIGH);
digitalWrite (pinF, HIGH);
digitalWrite (pinG, LOW);
digitalWrite (9, HIGH);}
else if (1<kaka<2){
digitalWrite (pinA, LOW);
digitalWrite (pinB, HIGH);
digitalWrite (pinC, HIGH);
digitalWrite (pinD, LOW);
digitalWrite (pinE, LOW);
digitalWrite (pinF, LOW);
digitalWrite (pinG, LOW);
digitalWrite (9, HIGH);}
else if (2<kaka<3){
digitalWrite (pinA, HIGH);
digitalWrite (pinB, HIGH);
digitalWrite (pinC, LOW);
digitalWrite (pinD, HIGH);
digitalWrite (pinE, HIGH);
digitalWrite (pinF, LOW);
digitalWrite (pinG, HIGH);
digitalWrite (9, HIGH);
digitalWrite (10, HIGH);}
}

 

 

Ha az "else if (2<kaka<3)"-at átírom sima "if (2<kaka<3)"-ra akkor abba lép be, megjelenik a 2-es a kijelnzőn és ég a 2 led az értéktől függetlenül. A képen látjátok h jól működik a plotter, ha a fent leírt kód fut akkor 0 és 1 között tud váltani, aztán nemtom, elfogy a tudomány ha tovább kéne állni. A programozás terén IS kezdő vagyok de azért szerintem itt nem ejtettem olyan nagy hibát. 

 

Mit csinálok rosszul ? Előre is köszi (L)

ui.: kusza a kapcsolás, de külön letesztelve minden működik...

 

Krommer84 Creative Commons License 2017.12.22 0 0 3287

Sziasztok kezdőként vettem egy Arduino r3-at és szeretnék egy léptetőmotor vezérlő projektet az alábbi link alapján:

https://hobbielektronikabolt.blogspot.hu/2017/11/lepteto-motor-vezerlese-uln2003.html

 

elvileg mindent megcsináltam, de hiba üzentet kapok.

 

Beállításaim:

 

http://i63.tinypic.com/30tgdud.jpg

 

Hiba üzenet:

 

Arduino: 1.6.10 (Linux), Board: "Arduino Uno"

WARNING: Category '' in library EEPROM is not valid. Setting to 'Uncategorized'
WARNING: Category '' in library SPI is not valid. Setting to 'Uncategorized'
WARNING: Category '' in library SoftwareSerial is not valid. Setting to 'Uncategorized'
WARNING: Category '' in library Wire is not valid. Setting to 'Uncategorized'
Warning: platform.txt from core 'Arduino AVR Boards' contains deprecated recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{build.path}/{archive_file}" "{object_file}", automatically converted to recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{archive_file_path}" "{object_file}". Consider upgrading this core.
signal: bad system call (core dumped)
Error compiling for board Arduino Uno.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

 

 

Kérem valaki világosítson fel mit csinálok rosszul?

Tomiali Creative Commons License 2017.12.19 0 0 3286

Sziasztok. Használja itt valaki a virtuinot? 

ruzsa janos Creative Commons License 2017.12.17 0 0 3285

van egy bitburner program, ami a mndenki által használt avrdude dos-os programot használva nagyon kellemes grafikus felületen működik. töltsd le.

nekem egy USBtiny klón ISP programozóm van, azzal működik. 

mondjuk azért tanultam meg bootloadert feltenni, mert ezzel az ISP programozóval sikerült törölnöm az eredetit :)

(én csak az olvasásvédő "fuse"-okat akartam átbillenteni. hát nem elsőre sikerült)

 

Előzmény: gyerek67 (3283)
gyerek67 Creative Commons License 2017.12.17 0 0 3284

Átmértük az USB csatit, szépen átmegy a CH340-re.

Előzmény: gyerek67 (3283)
gyerek67 Creative Commons License 2017.12.17 0 0 3283

Köszi a válaszodat!

Szép fényesnek, egészségeseknek tűnnek az USB csati forrasztások, de mindjárt kimérem őket.

Ezt a bootloader dolgot hogyan kellene csinálnom?

Van itthon egy CP2102-es adapterem itthon. Az való a feladathoz?

 

Üdv: Viktor

Előzmény: ruzsa janos (3282)
ruzsa janos Creative Commons License 2017.12.17 0 0 3282

vagy leszakaft az usb csatlakozo, olyanom mar volt.

ha bootloader, akkor az ISP porton tudpod ratolteni.

de eloszor multimeterrel az usb, szerintem

Előzmény: gyerek67 (3281)
gyerek67 Creative Commons License 2017.12.17 0 0 3281

Szervusztok, segítséget kérnék!

 

A fiam vásárolt kéz alatt egy használt Arduino Nano-t.

Az eszköz jelenleg nem kommunikál USB-n a legfrissebb gyári programozó szoftverrel.

A CH340 driver jó, mert simán beszélgetek rajta keresztül egy ESP-8266 Wemos D1-el.

Az eladó elmondása szerint eddig valamilyen más módon, Linux alatt használták.

A jószág vélhetően jó, mert a LED BLINK program, amit beletöltöttek, remekül működik, miután tápot kap.

Mit kellene tennem? Valahogyan másik bootloadert tölteni bele, hogy USB-n keresztül elérjem?

Sajnos Arduinoban semmilyen tapasztatom nincsen, most találkoztam vele először.

 

Üdv:

Viktor

 

ruzsa janos Creative Commons License 2017.12.16 0 0 3280

szerintem először határozd meg, mennyi a motor elérhető maximális és még használható minimális sebessége. ezt a "tartományt" osszad fel mondjuk 4 részre, ez lesz a 4 használandó sebesség.

a motor elindulási irányán nem értem mi a probléma, hát vagy közeleíteni akarsz, vagy távolítani, nem?

az aktuális és a célpozíció függvényében kellene eldöntenie a programnak, hoy max sebességgel indul, vagy a többi 3 lépcső valamelyikével. Ha kicsi a távlság, akkor a legkisebbel, másként túlmegy rajta. Ahogy közeledik, csökkented a sebességet. Az ultrahangos távolságmérőnek van egy mérési időtartama - vagyis a távolságot legfeljebb ilyen időközönként tudod meghatározni. Ha az aktuális pozíció mínusz a célpozíció közötti táv kisebb, mint amit a motor két távmérés alatt megtesz, akkor a motor működtetési idejét már a táv/sebesség alapján kell számolnod. 

A legfontosabb szerintem: a célpozícióra állásnak kell legyen egy megengedett pontatlansága, vagyis ha ezen belül vagy, akkor le kell állni a beállásnak, másként a végtelenségig rángatja majd előre-hátra.   

Előzmény: ngyzsolt (3279)
ngyzsolt Creative Commons License 2017.12.16 0 0 3279

Üdv!

 

Egy szintezőt szeretnék építeni. Ez tulajdonképpen egy makett lenne. A szenzor alatt lévő objektumhoz képes igazítaná a felfüggesztett fém lemezt, aminek a két végén helyezkednek el a szenzorok(HC-SR04 ultrahangos távolságmérő). A szintezést egy 12 voltos dc motor végezné, aminek a fordulatszámát áttétellel is lassítottam. Ezt a motort egy L298N vezérlő irányítaná. 

A programozással akadtak problémáim. Az lenne a kérdésem, hogy hogyan lehetne megoldani azt, hogy a motor mindig a megfelelő irányban, csak a szükséges mértékig állítson és ez az állítás mindig a lehető leggyorsabban történjen.

Vargham Creative Commons License 2017.12.13 0 0 3278

Ezek a linkek miért mennek keresztül a fészbúkon?

Előzmény: sfveteran (3277)
sfveteran Creative Commons License 2017.12.13 0 0 3277

Üdv!

 

Építenék egy TZXDuino-t (https://github.com/sadken/TZXDuino).
Kijelző, SD kártya olvasó már csatlakoztatva. A kártya olvasó nem érzékeli a kártyát. Egy 256 MB-os régi Nokia microSD kártyáról van szó. Minden vezeték a megfelelő helyen van, nincs kontakt hiba. Kipróbáltam az arduino fejlesztő rendszer Libraries/SD/examples/ mappában található Cardinfo programot is, ami a következő hibát dobja soros monitoron:

"Initializing SD card...Wiring is correct and a card is present.

Card type: SD1
Could not find FAT16/FAT32 partition.
Make sure you've formatted the card"

Formáztam FAT16-ra, FAT32-re, letöltöttem az SDcard.org oldalról az SD kártya formázó proggit, de semmi.

1.8.5.-ös az arduino fejlesztőrendszer, az SD library 1.2.1-es, az USB-n keresztül 4.9V-ot kap a panel.

Megnéztem ezt is SDFat lib-et: https://github.com/greiman/SdFat

Itt van egy SDinfo nevű arduino program. Egy 4Gb-os kártyára ezt adja:
Egy másik, 4 GB-os kártyára ezt adja az SDinfo:

 

init time: 365 ms

Card type: SDHC

Manufacturer ID: 0X27
OEM ID: PH
Product: SD04G
Version: 3.0
Serial number: 0X3D78EDDA
Manufacturing date: 8/2010

cardSize: 3980.39 MB (MB = 1,000,000 bytes)
flashEraseSize: 128 blocks
eraseSingleBlock: true
OCR: 0XC0FF8000

SD Partition Table
part,boot,type,start,length
1,0X0,0XB,8192,7766016
2,0X0,0X0,0,0
3,0X0,0X0,0,0
4,0X0,0X0,0,0
error:
File System initialization failed.

SD errorCode: 0X30,0X4F

Másik, 8 GB-os kártyára is ugyanezt a hibát dobja. Mi lehet a hiba?

 

Prof Creative Commons License 2017.12.12 0 0 3276

+ Arduino környezetben a honlapon van kissé alapabb a "library"-k (könyvtárak) használatáról.

Mindenképp jó irány. A sok void (ami nem feltétlen void) első lépésnek nem rossz, de a könyvtárak használata mindenképp célravezetőbb (és elegánsabb is).

Előzmény: Vargham (3273)
barkócza Creative Commons License 2017.12.12 0 0 3275

Keress rá a neten a "moduláris programozás C nyelven" kifejezésre. Ezért van külön lépésben a fordítás és a linkelés, és erre valók a header (.h) fájlok. (Pascalban a unit csinálja ugyanezt.)

Előzmény: Brandyman (3271)
digium Creative Commons License 2017.12.12 0 0 3274

Félreértettem, mert először adat file olvasásról volt szó. Azt hittem, magát a programot akarja külső fájlból olvasni/futtatni...

Előzmény: Vargham (3272)

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