Servo aansturen met arduino

Pagina: 1
Acties:

Onderwerpen


  • kitao
  • Registratie: Juli 2012
  • Laatst online: 30-03 15:50
Je zou het kunnen uitproberen op een simulator zoals bijvoorbeeld SimulIDE dan heb je wat meer zekerheid of het aan de code ligt, aan de bedrading of aan een defecte servo. Niet dat simulide altijd 100% werkt, toevallig met meerdere servo's was er een probleempje in 0.4.15, maar goed, die versie is nog in de testfase.
https://simulide.forumoti...arduino-uno-does-not-work

Ik heb de meest fundamentele opstelling geprobeerd en dat gaat goed, dit is de bron met code
https://elektronicavoorjo...ntroductie-servo-control/
De sim heeft een hex-bestand nodig om als firmware te kunnen uploaden in de microcontroller
Dat gaat als volgt:
Verify de code zoals normaal, klik op Sketch en dan op Export compiled binary. Dit genereert 2 hex-files, eentje zonder en eentje met bootloader. Een bootloader heb je niet nodig in de simulatie dus kies de eerste als upload firmware. Dan is dit de uitkomst:

Afbeeldingslocatie: https://tweakers.net/i/TMTVa_BfxEGRAJE-z1VpQsqhn3E=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/Mb0wAAnYXqns8Q84bnj808ZI.png?f=user_large

https://www.simulide.com/p/downloads.html

*******************************************************************
thomasv.w schreef op donderdag 22 april 2021 @ 15:35:
Dit is mijn code, de code geeft geen foutmelding, alleen mn servo doet niks.


C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<Servo.h>
Servo Myservo;
int pos = 0;
int signaal = 2;
void setup()
{
  pinMode(2,INPUT);
  Myservo.attach(8);
  digitalWrite(2, LOW);
}

void loop()
{
  if(digitalRead(2)==HIGH){
    Myservo.write(180);
  }
  else
    
 Myservo.write(0);

}
Die code draait goed op de simulator bij mij

Afbeeldingslocatie: https://tweakers.net/i/B67lGi6D2ycS7opMee1VnwHEhO4=/800x/filters:strip_exif()/f/image/gGixieTPDqZRU8MutUYgQi4K.png?f=fotoalbum_large

Je zou als test een ledje op pin 8 zonder weerstand kunnen aansluiten, volgens de sim knippert die dan flauw bij zowel H als L op pin 2. Misschien toch beter wel met een weerstandje beginnen voordat poort 8 wegsmelt.

Ps2\
Deze is iets meer interactief
https://circuitdigest.com...-control-code-and-circuit
Jammer alleen dat de code het niet doet en dat het schema niet overeenstemt met de pin toekenning in de code. Het attach commando ontbreekt. Indien toegevoegd, zie regel 10, werkt het wel.

C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
volatile int i=0;//initializing a integer for incrementing and decrementing duty ratio.

#include <Servo.h>// header file for controlling servo

Servo servo;//defining the name usage as servo itself

void setup()

{
    servo.attach(3); // Deze zelf toegevoegd



                pinMode(3, OUTPUT);   // sets the pin3 as output

                pinMode(8, INPUT);// sets the pin8 as input

                pinMode(9, INPUT);// sets the pin9 as input

}

void loop()

{

                servo.write(i);//set servo potion ‘i’ degrees

                if (digitalRead(8)==LOW)

                {

                                if (i<180)

                                {

                                                i++;//if pin8 is pressed and degrees is less than 180

                                                delay(30);

                                }

                }

                if (digitalRead(9)==LOW)

                {

                                if (i>0)

                                {

                                                i--;// if pin9 is pressed and degrees is greater than 0

                                                delay(30);

                                }

                }

}


Afbeeldingslocatie: https://tweakers.net/i/S2gCs-sZzkNzsEWrgpMSG_FruTM=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/RVzvtF9c3Gkh5irtfHTMUiK0.png?f=user_large

[ Voor 59% gewijzigd door kitao op 28-04-2021 14:30 . Reden: TS' code uitgeprobeerd en toegevoegd ]

Pagina: 1