onstabiele AC/DC adapter?

Hardware geleverd door Arduino
Berichten: 7
Geregistreerd: 16 Jul 2018, 14:39

onstabiele AC/DC adapter?

Berichtdoor janvandenbossche » 11 Jun 2023, 16:21

Ik maak een toepassing waarbij 16 relais worden aangestuurd met Arduino Mega.
De relais zijn verbonden met pin 22, 24 ... 52.
Ik haal 16 bits (2 byte -> 2x met loop) op uit het EEPROM, die bepalen welke relais aan moeten.
Bij elke positieve flank op pin 2 (links, Tlinks) wordt een nieuwe reeks bits opgehaald en veranderen de relais (kan ik ook aflezen op lcd).
Dit werkt als ik het verbind met de computer, maar los van de computer met een 9v adapter wordt een doorlopende loop afgewerkt (Tlinks steeds aan?) vanaf de eerste positieve flank op pin 2 (soms werken de eerste contacten op pin 2 wel correct).
Kan het aan de adapter liggen? En wat kan ik er dan aan doen?
Code: Alles selecteren
void setup() {
  // initialize digital pin
  pinMode(links, INPUT);
   //initialize digital output, s1 = 22
  for (int i = 0; i < 32; i += 2) {
    pinMode(s1 + i, OUTPUT);
  }
  //initialize lcd
  lcd.init();
  lcd.backlight();
  lcd.clear();  //Maak het scherm leeg
  lcd.setCursor(0, 0);
  lcd.print("Meta Dobby");  //Stuur tekst naar het scherm
  for (int i = 0; i < 20; i++) {
    lcd.setCursor(i, 1);
    int val = EEPROM.read(i);
    lcd.print((char)val);
  }
  inslagNummer = EEPROM.read(21);
  aantalInslagenR = EEPROM.read(20);
  lcd.setCursor(0, 2);
  lcd.print(aantalInslagenR);
  lcd.setCursor(3, 2);
  lcd.print("inslagen");
  Serial.begin(9600);

  for (int i = 0; i < 32; i += 2) {
   digitalWrite(s1 +  i, HIGH);
  }
}

void loop() {
  //van analoog naar digitaal
  if (digitalRead(links)) {
    if (!Plinks) Tlinks = true;
    else Tlinks = false;
    Plinks = true;
  }
  else  Plinks = false;
 
   //als de linkertrapper wordt ingeduwd (pin 2) wordt een volgende inslag uit het EEPROM gehaald
  // de inslagnummer en bits worden getoond op LCD
  if (Tlinks) {
    if (inslagNummer == aantalInslagenR) inslagNummer = 1;
    else inslagNummer++;
   
    //index is het adres waar de byte staat om 8 schachten te bedienen
    //val is de byte met 8 bits om 8 schachten te bedienen
    for (int i = 0; i < 2; i++) {
      int index = eepromStart + i + (inslagNummer - 1) * 2;
      lcd.setCursor(12, 2);
      lcd.print(index);  //enkel ter controle, de index in EEPROM
      int val = EEPROM.read(index);
      lcd.setCursor(15, 2);
      lcd.print(val);  //enkel ter controle, de waarde in EEPROM

      for (int bit = 0; bit < 8; bit++) {
        lcd.setCursor(i * 8 + bit, 3);
        lcd.print(bitRead(val, bit));
        if (bitRead(val, bit) > 0) digitalWrite(s1 + (i * 16) + (2 * bit), LOW);
        else digitalWrite(s1 + (i * 16) + (2 * bit), HIGH);
      }
    }
    Tlinks = false;
  }
  //als de rechtertrapper wordt ingeduwd wordt een vorige inslag uit het EEPROM gehaald
  // de inslagnummer en schachten op worden getoond
  if (Trechts) {
    if (inslagNummer == 1) inslagNummer = aantalInslagenR;
    else inslagNummer--;
    EEPROM.write(21, inslagNummer);
    lcd.setCursor(0, 2);
    lcd.print("inslag ");
    lcd.setCursor(8, 2);
    lcd.print(inslagNummer);

    for (int i = 0; i < 2; i++) {
      int val = EEPROM.read(eepromStart + i + (inslagNummer - 1) * 2);
      for (int bit = 0; bit < 8; bit++) {
        lcd.setCursor(i * 8 + bit, 3);
        lcd.print(bitRead(val, bit));
        if (bitRead(val, bit) > 0) digitalWrite(s1 + (i * 8) + (2 * bit), LOW);
        else digitalWrite(s1 + (i * 8) + (2 * bit), HIGH);
      }
    }
  }


Advertisement

Berichten: 4067
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: onstabiele AC/DC adapter?

Berichtdoor shooter » 11 Jun 2023, 17:35

of je programma goed werkt kun je kijken met een paar serial.prints ertussen waarbij je in de monitor kunt kijken wat er gebeurt zoals tlinks,trechts etc.
als je de USB aan hebt staan dan is de voeding dus max 500 mA echter de mega is absolute max current is 200 mA en per pin 20 mA dus maximaal 10 pinnen kun je maximaal belasten.
heel vaak is een relaisbordje voorzien van optocouplers maar dat kun je zien als ledjes.
de voeding van zo een relais bordje NOOIT direct aan je mega knopen maar direct van de voeding afhalen en dus parallel aan je mega zetten.
en dan testen wanneer je voeding stopt dus je zet 1 relais aan met een simpel programma dan zet je 2 relais aan etc.
als je een stekkervoeding gebruikt niet verder gaan dan de helft van wat er op jouw stekker staat
verder heb je een weerstand gebruikt om geen zwevende ingang te hebben en links moet je wel definieren bijv #define links 81
verder moet je voorkomen dat je eeprom blijft schrijven dus met een timer controleren dat je dat niet te vaak doet.
paul deelen
shooter@home.nl

Berichten: 7
Geregistreerd: 16 Jul 2018, 14:39

Re: onstabiele AC/DC adapter?

Berichtdoor janvandenbossche » 17 Jun 2023, 22:14

De relaiskaart heeft een voeding van 24 volt voor de 16 relais.
Daarnaast is de kaart ook aangesloten op de 5V van de Arduino.
Bedoel je dus dat ik voor die kaart nog een aparte voeding moet voorzien, een adapter van 5V?
Voor de Arduino heb ik een adapter van 9V.

Berichten: 4067
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: onstabiele AC/DC adapter?

Berichtdoor shooter » 18 Jun 2023, 14:29

24 volt lijkt mij erg veel of doe je daar de contacten mee en dan is er ook nog een voeding nodig voor de coils van die relais en dat is 5 of 12 Volt en heeft dus ook een aparte aansluiting, heel vaak wordt dat gebruikt samen met de arduino maar dan loopt er veel te veel stroom dus apart doen. kijk maar in de handleiding van de relais bord hoe dat moet.
paul deelen
shooter@home.nl

Berichten: 7
Geregistreerd: 16 Jul 2018, 14:39

Re: onstabiele AC/DC adapter?

Berichtdoor janvandenbossche » 18 Jun 2023, 16:29

Tja, ik kocht het relaisbord online en daar is geen enkele documentatie bij.
Als ik enkel de pins naar de arduino aansluit, incl 5v zoals op de kaart staat, dan branden wel de ledjes op de kaart, maar de relais schakelen niet.
Naar analogie met een afbeelding op internet van een gelijkaardige kaart, had ik op de andere aansluiting (dc+ dc-, voltage niet gespecigieerd) 12 v op de relaiskaart gezet, maar de relais schakelden nog steeds niet. (https://www.sainsmart.com/products/16-c ... lay-module)
Uit de summiere info bij de webshop van de kaart, concludeerde ik dan dat er 24 v op moet (https://www.amazon.com.be/dp/B094J49JLG ... E_DDE_dt_1).
En ja, dan schakelen de relais (en gaan de ledjes sterker branden, is dat normaal?).
Ik probeerde een aparte adapter van 5v op de 5v pins van de kaart te zetten, werkt niet, ledjes branden niet en relais schakelen niet.
Blijkbaar snap ik te weinig van electronica om dit te laten werken? Wat is het verschil tussen 5v van de arduino en 5v van de adapter (ik heb het nagemeten)?

Berichten: 4067
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: onstabiele AC/DC adapter?

Berichtdoor shooter » 19 Jun 2023, 11:51

op de foto staat een 12 V eenheid die dus 12 Volt nodig heeft en aan de digitale kant is dat 5 Volt daarvoor zitten dus die optocouplers erin.
op de relais staat welke spanning de kaart nodig heeft.
paul deelen
shooter@home.nl

Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Re: onstabiele AC/DC adapter?

Berichtdoor Gij Kieken » 19 Jun 2023, 13:27

Je moet oppassen met die relais kaarten, in het verleden was er een probleem met de Pcb.
Er lagen sporen verkeerd waardoor de( 12 volt - 24 volt) op de 5volt van de Arduino kwam te staan.
1 helft werkte goed maar de andere helft waren de problemen ingeslopen.
Dus echt de spoortjes nazien op sluiting en of verkeerd verbonden.

Berichten: 38
Geregistreerd: 20 Jul 2022, 14:40

Re: onstabiele AC/DC adapter?

Berichtdoor Harm J Seef » 19 Jun 2023, 16:29

”Wat is het verschil tussen 5v van de arduino en 5v van de adapter (ik heb het nagemeten)?”

De Arduino wordt gevoed via Vin met een spanning tot 12 VDC. De Arduino zelf heeft een eigen zeer kleine 12-naar-5 VDC spanningsregelaar, welke de MCU voedt. Deze 5 VDC is ook beschikbaar op de 5V Arduino pennen, maar dan uitsluitend en alleen bedoeld als hulpspanning voor het transistor-schakelen (!) van de in- en uitgangen. Arduino’s 5 VDC is beslist NIET bedoeld voor het direct schakelen van relais of andere zware gebruikers.

Met een 12 VDC netadapter voor voldoende ampere kan zowel de arduino, als de schakelprint gevoed worden. Arduino’s 5 VDC hulpspanning is alleen nodig voor de schakeltransistoren of optocouplers op de schakelprint.

Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Re: onstabiele AC/DC adapter?

Berichtdoor Gij Kieken » 19 Jun 2023, 17:37

Sorry was niet op de arduino 5 volt maar naar de relais spoelen.( twas al heel erg lang geleden)
Bijgevoegd de link.
https://www.youtube.com/watch?v=mHPqxctmJrs

Berichten: 7
Geregistreerd: 16 Jul 2018, 14:39

Re: onstabiele AC/DC adapter?

Berichtdoor janvandenbossche » 20 Jun 2023, 21:05

Ik heb het gevoel dat we een beetje naast elkaar aan het praten zijn.
Ik heb nog geen ervaring met arduino, voor een vorige toepassing probeerde ik ook via een arduino te werken voor de aansturing van 2 relais.
Ook dat ging fout en uiteindelijk heb ik dan een Controllino aangeschaft en dat kreeg ik wel aan het werk, daar had ik geen extra tussenrelais voor nodig.

Met mijn huidig project wil ik 16 solenoids (24 v) aansturen, vandaar die 16-kanaals relaiskaart.
Om alles nog eens te schetsen: ik verbind via usb de arduin Mega met de computer. Vanaf de arduino zijn 16 pins verbonden met de relaiskaart + 5v en gnd van de arduino naar de kaart, daarmee kan ik de ledjes van de relais aansturen. De relais zelf schakelen moet met een extra aansluiting van 24 v (veronderstel ik, met 12 v gebeurde er niets).
Deze opstelling werkt, elke keer ik stroom zet op pin 2 worden 16 bits uit het EEPROM gelezen en worden de juiste relais geactiveerd.
De machine moet natuurlijk zonder computer ook werken, maar als ik de arduino stroom geef via een adapter van 9V i.p.v. via usb gaat het mis. Ik geef een puls op pin 2 en het EEPROM wordt niet éénmaal gelezen (en dito relais aangestuurd) maar in een doorlopende loop. Soms loopt de eerste puls of de eerste 2 pulsen wel correct.
Ik probeerde de kaart ook stroom te geven met een andere adapter van 5v, maar ook dat werkte niet.
Terwijl ik dit hier typ probeerde ik om enkel 24V op de kaart te zetten, zonder de 9v adapter voor de arduino: blijkbaar krijgt dan ook de arduino stroom. En dit schijnt te werken zoals bedoeld. Kan ik daar nog iets fout mee doen: de arduino krijgt dan stroom via de 5v en gnd verbinding met de kaart?

Volgende

Terug naar Arduino hardware

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 35 gasten