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:
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
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);
}
}
} |
[
Voor 59% gewijzigd door
kitao op 28-04-2021 14:30
. Reden: TS' code uitgeprobeerd en toegevoegd ]