अरे, मैं एक छोटी परियोजना पर काम कर रहा हूं और मैं किसी तरह उस सेटअप को एक से अधिक बार चलाने में कामयाब रहा और उस नए कोड के शीर्ष पर बोर्ड पर अपलोड नहीं होगा। मुझे पूरा यकीन नहीं है कि यह क्या है मैंने गलत किया है लेकिन मुझे जवाब नहीं मिल रहा है इसलिए मैं आप लोगों से पूछ रहा हूं।

void setup()
{
  // put your setup code here, to run once:
  Serial.begin(9600);
  // I want to make some sound to tell the user to start measuring so I'll put some code below
  Serial.print("Inicialize setup");
  while (millis() < 5000)
  {
    if (millis() % 1000)
    {
      Serial.print(millis());
      Serial.print("\n");
    }
    if (AnalogValue > MaxIntensity)
    {
      MaxIntensity = AnalogValue;
    }
    if (AnalogValue < MinIntensity)
    {
      MinIntensity = AnalogValue;
    }
  }
  Serial.print("setup done");
  float MaxDist = Distance(MaxIntensity);
  float MinDist = Distance(MinIntensity);
  float delta = MaxDist - fabs(MinDist);
  Segmentlength = delta / 7;

  for (int i = 7; i > 0; i--)
  {
    TonesUpperValues[i] = MinDist + (Segmentlength * i);
  }
}

और यह ऊपर इस्तेमाल किया गया फ़ंक्शन है

float Distance(int Intensity)
//function to calculate distance from intensity
{
  float d = (1 / (exp(Intensity + EOffset))) + Offset;
  d *= -1;
  return d;
}

सीरियल मॉनीटर में मैं मिलिस को बार-बार छपते हुए देखता हूं और कुछ पाठ भी जो मैं अनुमान लगा रहा हूं "inicialize setup" और "Setup done" जब मैं कोड अपलोड करने का प्रयास करता हूं तो यह त्रुटि दिखाई देती है: avrdude: ser_open(): can't open device "\\.\COM5": Access is denied. भले ही: Auto-detected: COM5 इसके अलावा पिछला कोड (जिसे एक नए अपलोड द्वारा अधिलेखित नहीं किया जा सकता है और वर्तमान में चल रहा है, यह चेतावनी फ़ंक्शन में थी जो सेटअप का हिस्सा नहीं था: src\main.cpp:38:1: warning: control reaches end of non-void function [-Wreturn-type]

क्या तुम लोगों को मेरी कोई गलती नज़र आती है?

0
ILKO GAMER 6 जिंदा 2021, 16:43
एक साधारण ब्लिंक प्रोग्राम लोड करने का प्रयास करें - नीचे @Arkadip के सुझावों का पालन करें। आप सीरियल मॉनीटर को स्क्रॉल न करने के लिए कह सकते हैं; आउटपुट की शुरुआत को पकड़ने का प्रयास करें। जब तक आपको संकलन त्रुटियां मिलती हैं, आप नया कोड अपलोड नहीं कर रहे हैं। यह millis() % 1000 आपको केवल 0 और 999 के बीच की एक संख्या देता है - यह 999/1000 बार सही होगा, इसलिए आपको बहुत संख्याएं मुद्रित हो रही हैं। आप इसके बजाय इसे आजमा सकते हैं: (millis() % 1000) == 0 लेकिन यह शायद ही कभी सच होगा - पहले if आपको setup() में लूप से बाहर ले जाने से पहले आप 1000,2000,3000,4000 चूक जाएंगे। ..
 – 
aMike
7 जिंदा 2021, 02:47

1 उत्तर

सबसे बढ़िया उत्तर

कोड स्निपेट को देखते हुए, मुझे पूरा यकीन नहीं है कि आपके कोड के साथ क्या हो रहा है। लेकिन मुझे कुछ समस्याएं मिलीं, जो मुझे आशा है कि आपकी मदद करेंगी।

  1. avrdude: ser_open(): can't open device "\\.\COM5": Access is denied. अंक के लिए,
  • Arduino हमेशा बोर्ड को स्वचालित रूप से नहीं पहचानता है। इसलिए, सुनिश्चित करें कि आपने टूल्स > पोर्ट का उपयोग करके सही कॉम पोर्ट का चयन किया है। आपको वहां अपना Arduino देखना होगा

  • यदि बोर्ड नहीं है, तो सुनिश्चित करें कि आपने Arduino को सही तरीके से जोड़ा है यानी Arduino पर LED जली हुई है।

  • यदि आपने बोर्ड को सही ढंग से जोड़ा है, लेकिन बोर्ड अभी भी नहीं दिखाया गया है, तो सुनिश्चित करें कि Arduino USB driver ठीक से स्थापित है। USB ड्राइवर को स्थापित करने के लिए Arduino IDE को फिर से स्थापित करें।

  1. आपके कोड स्निपेट में void loop() नहीं है। यदि आप void loop() का उपयोग नहीं कर रहे हैं, तो इसे खाली छोड़ दें, लेकिन इसे कभी न छोड़ें। यह एक कंपाइलर त्रुटि को जन्म देगा।

  2. warning: control reaches end of non-void function [-Wreturn-type] त्रुटि के लिए, कृपया इसे देखें "नियंत्रण गैर-शून्य कार्य के अंत तक पहुंचता है" का क्या अर्थ है?

आशा है कि यह आपकी मदद करेगा। धन्यवाद

0
Arkadip Bhattacharya 6 जिंदा 2021, 17:19